Powershell-Cmdlets, die Ihre Windows-Administratorfähigkeiten verbessern

Powershell-Cmdlets, die Ihre Windows-Administratorfähigkeiten verbessern

Powershell ist eine perfekte Möglichkeit für einen neuen Programmierer, unter Windows zu beginnen. Powershell ist zu gleichen Teilen ein Befehlszeilentool und eine Skriptsprache. Es gibt Ihnen die Möglichkeit, Ihren Computer zu automatisieren über die gleichen Befehle, mit denen Sie es verwalten . Wenn Sie ein modernes Windows-System haben, verfügen Sie bereits über Powershell. Die meisten seiner Anwendungen sind Windows-zentriert, aber Sie können Powershell auch auf einem Mac- oder Linux-Computer installieren.





Arbeiten mit Powershell

Es gibt zwei Möglichkeiten, Powershell zu verwenden. Es gibt das grundlegende Befehlszeilenfenster, das verwendet wird, um Befehle auszuführen oder vorgefertigte Skripte aufzurufen. Dann gibt es die ISE, die das CLI-Fenster mit einer grundlegenden Entwicklungsumgebung kombiniert. Damit können Sie Ihre Skripte schreiben und testen.





Die ISE verfügt über eine durchsuchbare Liste von Befehlen, und Sie können das Terminalfenster verwenden, ohne dass eine Datei geöffnet ist. Die Befehlsliste ermöglicht es Ihnen, Ihren Befehl zu konstruieren und einzufügen. Wenn Sie eine erweiterte Entwicklung durchführen, installieren Sie Visual Studio Code von Microsoft. Der Code enthält Unterstützung für Git-Versionskontrolle und andere Sprachen.





Powershell ist insofern einzigartig, als es vollständig aus Befehlen besteht, Microsoft nennt sie Cmdlets. Diese Befehle sind identisch, wenn Sie über die Befehlszeile arbeiten oder komplexe Skripte schreiben. Wenn Sie diese Befehle verwenden, können Sie sich überlegen, wie Sie sie aneinanderreihen, um Ihre ersten Skripte zu erstellen.

Die Grundlagen: Get-Command, Get-Help, Get-Member

Alle Powershell-Befehle haben die Form Verb-Noun. Die Verben sind normalerweise: Holen, einstellen und neu .



Get-Befehl ermöglicht es Ihnen, jeden verfügbaren Befehl zu sehen. Wenn Sie Get-Command ausführen, sehen Sie, dass es unzählige Befehle gibt, die damit beginnen.

Wenn Sie sich nur die Namen der Cmdlets genauer ansehen, werden Sie feststellen, dass sie alle eine ähnliche Struktur haben. Sie rufen sie mit ihrem Namen auf, genau wie bei Get-Command. Die Verwendung von Parametern ändert die Informationen, die Sie erhalten. Wenn Sie den Befehl jedoch immer nur mit Standardoptionen verwendet haben, wie finden Sie dann heraus, wie Sie erweiterte Parameter verwenden?





Verwendung der Hilfe erhalten Cmdlet mit Get-Command zeigt weitere Informationen zum Cmdlet an. Wir verwenden das Cmdlet mit der folgenden Syntax:

Get-Help Get-Command

Sie sehen dann die grundlegenden Informationen zu den Parametern. Wenn Sie die Parameterdetails und einige Verwendungsbeispiele sehen möchten, fügen Sie den Parameter -Full hinzu.





Wenn Sie nur die Beispiele sehen möchten, können Sie Folgendes ausführen:

Get-Help Get-Command -Examples

Dieses Cmdlet gibt nur die Beispiele aus der Hilfedatei zurück. Diese Beispiele sind sehr hilfreich, da sie Beschreibungen enthalten. In diesem Hilfetext wird erläutert, was das Cmdlet und die Parameter bei der Ausführung tun.

Wenn Sie die Hilfedatei in einem separaten Fenster öffnen möchten, können Sie -Schaufenster . Wenn Sie also laufen:

Get-Help Get-Command -ShowWindow

Powershell öffnet ein Fenster mit der vollständigen Hilfedatei. Sie müssen den Full-Parameter hier nicht verwenden, da das Fenster den vollständigen Artikel zieht.

Wenn Sie mit Powershell weiter fortgeschritten sind, werden Sie feststellen, dass Sie Get-Member häufiger verwenden. Es ist eine einfache Möglichkeit, zu sehen, welche Felder aus zurückgegebenen Daten verfügbar sind, sowie andere Methoden, die Sie ausführen können. Cmdlets haben oft ein -Eigentum Parameter, damit Sie diese aufrufen können.

Arbeiten mit Dateien: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

Nachdem Sie nun eine Vorstellung davon haben, wie Cmdlets funktionieren und wie Sie Hilfe erhalten, nehmen wir nun die Änderungen vor. Sie können den Inhalt eines beliebigen Ordners mithilfe der Get-ChildItem Befehl. Sie können beispielsweise die Dateien eines gesamten Laufwerks mithilfe des Laufwerksbuchstabens abrufen. Eintreten:

Get-ChildItem E:

Was ist die Abkürzung für:

Get-ChildItem -Path E:

Wenn Sie diesen Befehl ausführen, erhalten Sie eine Liste der Dateien mit der letzten Schreibzeit, der Größe unter der Eigenschaft Länge, Name und Modus. Der Modus sind die Attribute einer Datei oder eines Ordners. Die möglichen Eingaben sind:

  • Schreibgeschützt
  • Versteckt
  • System
  • Verzeichnis
  • Archiv
  • Gerät
  • Normal
  • Vorübergehend
  • SparseFile
  • Analysepunkt
  • Komprimiert
  • Offline
  • NotContentIndexed
  • Verschlüsselt

Wenn Sie den Inhalt aller Unterverzeichnisse in einem Pfad abrufen möchten, verwenden Sie die -Rückfall Parameter. Also dann lauf:

Get-ChildItem -Path E: -Recurse

Ihre Dateien erscheinen dann als separate Listen für jeden Ordner im Pfad.

Um die zurückgegebenen Daten einzuschränken, können Sie einige verschiedene Parameter verwenden: -Datei , -Versteckt , und -Schreibgeschützt . Wenn Sie nach den Namen der Datei filtern möchten, können Sie Platzhalter im Parameter Path verwenden. Geben Sie Folgendes ein, um alle .doc-Dateien in einem Verzeichnis zurückzugeben:

Get-ChildItem -Path E:*.doc

Nochmal hinzufügen -rekurs wenn Sie auch alles aus den Unterordnern haben wollten.

Wenn Sie eine Datei löschen möchten, verwenden Sie:

Remove-Item -Path E:OldFile.txt

Um die Bestätigung jeder Datei zu überspringen, fügen Sie den Parameter hinzu -Bestätige $false (Powershell hat zwei Konstanten für boolesche Werte: $true und $false). Um das Entfernen von schreibgeschützten oder versteckten Dateien zu erzwingen, verwenden Sie die -Macht Parameter.

Das Verschieben von Dateien ist genauso einfach. Um alles von Ihrem Flash-Laufwerk auf das lokale Laufwerk in einem Ordner zu verschieben, verwenden Sie:

Move-Item -Path E:* -Destination C:FlashDriveArchive

Sie können auch eine einzelne Datei in -Path benennen, um nur diese Datei zu verschieben. Um die Datei zu kopieren, anstatt sie zu verschieben, verwenden Sie dieselbe Syntax mit dem Exemplar kopieren Cmdlet.

Überwachen und Arbeiten mit Prozessen und Diensten

Jeden Windows-Benutzer kennt den Task-Manager . Es gibt jedoch eine schnellere Möglichkeit, die derzeit ausgeführten Prozesse von Powershell aus anzuzeigen. Get-Prozess . Wenn Sie wissen möchten, was alle Einträge in dieser Tabelle bedeuten, leiten Sie den Befehl an Get-Mitglied . Geben Sie das Cmdlet ein:

Get-Process | Get-Member

Get-member gibt eine Liste von Methoden und Eigenschaften aus, die mit Get-Process verknüpft sind. Die Informationen oben sind für Sie interessant. Sie sehen, dass die verschiedenen Speichertypen Aliase haben.

Wir können an dieser Ausgabe auch sehen, dass wir die Produkt -Eigenschaft, um einen freundlicheren Namen für die Prozesse zu erhalten. Lassen Sie uns die Ausgabe ändern, damit wir mit besseren Informationen arbeiten können:

warum kann ich mich nicht auf skype sehen?
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending

(Weitere Informationen zu Select-Object und Sort-Object finden Sie im nächsten Abschnitt.)

Nachdem Sie nun die ID aus Ihrem Get-Process-Befehl haben, können Sie ihn mit dem Cmdlet Stop-Process stoppen. Wenn Sie also feststellen, dass ein Chrome-Prozess alle Ihre Ressourcen zerfrisst, suchen Sie die ID im vorherigen Befehl. Dann renne:

Stop-Process -ID 45960

Ersetzen 49560 mit der ID Ihres Ressourcenschweins.

Über den Dateipfad können Sie einen Prozess mit Powershell starten. Führen Sie den folgenden Befehl aus, um Chrome zu starten:

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe'

(Sie müssen den Dateipfad wegen der Leerzeichen in Anführungszeichen setzen.) -Argumentenliste -Parameter ermöglicht es Ihnen, Befehlszeilenoptionen an die Anwendung zu übergeben. Im Fall von Chrome können Sie den Start im Inkognito-Modus erzwingen, indem Sie die --inkognito Flagge. Das gesamte Cmdlet lautet:

Start-Process -Filepath 'C:Program Files (x86) GoogleChromeApplicationchrome.exe' -ArgumentList '--incognito'

Die meisten dieser Dinge können Sie mit Diensten tun. Get-Service zeigt Ihnen eine Liste aller Dienste an, die auf Ihrem Computer ausgeführt werden. Genauso wie beim Starten und Stoppen von Diensten können Sie Dienst starten und Dienst anhalten .

Arbeiten mit Daten: Sort-Object, Select-Object, Where-Object

Wenn Sie mit den Daten eines Cmdlets arbeiten, entspricht dies möglicherweise nicht immer der gewünschten Reihenfolge. In diesen Fällen möchten Sie die Sortier-Objekt . Sie können Sort-Object für eine von Ihnen erstellte Variable aufrufen, aber hauptsächlich wird sie verwendet, indem ein anderes Cmdlet weitergeleitet wird. Wie im obigen Beispiel leiten wir die Ausgabe eines Objekts an ein anderes weiter und sortieren es. Erstellen wir ein Array aus drei Zufallszahlen und leiten es an Sort-Object weiter.

Alles in Klammern wird zuerst ausgeführt. Erstellen Sie ein einfaches Array mit:

$(Get-Random), $(Get-Random), $(Get-Random)

Achten Sie auf die Kommas, die die Werte trennen. Um die sortierten Zufallszahlen zu sehen, laufen Sie:

$(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object

Das Cmdlet gibt die Zahlen vom kleinsten zum größten aus, wenn Sie es umkehren möchten, addieren Sie -Absteigend .

Wenn Sie Cmdlets an Get-Member weiterleiten, gibt es mehr Eigenschaften als die Standardausgabe. Sie wählen bestimmte Eigenschaften aus, indem Sie Select-Objekt .

Genau wie Sort-Object verwenden Sie Select-Object über ein Cmdlet mit Pipe. Um beispielsweise eine Tabelle mit Diensten und deren Statusverwendung zu generieren:

Get-Service | Select-Object DisplayName, Status

Die Ausgabe all dieser Daten ist zwar schön, aber was ist, wenn Sie nur bestimmte Daten sehen möchten? Get-ChildItem verfügt über einige integrierte Filter, die meisten Befehle jedoch nicht. In diesen Fällen verwenden Sie Wo-Objekt .

Wenn Sie wieder zu den Diensten zurückkehren, erhalten Sie diesmal nur laufende Dienste. Geben Sie das Cmdlet ein:

Get-Service | Where-Object Status -eq 'Running'

Dass -eq im Vergleich steht Powershell für = . In Powershell führen Sie Vergleiche mit Buchstabenkombinationen durch:

  • eq: gleich
  • ne: nicht gleich
  • lt: weniger als
  • gt: größer als
  • ge: größer oder gleich
  • le: kleiner oder gleich
  • like: like in Wildcard-Vergleichen verwenden

Formatierungshilfe: Format-Tabelle und Format-Liste.

Für diese verschiedenen Cmdlets erfolgte die meiste Ausgabe in Tabellenformaten. Dadurch werden die Daten in Zeilen und Spalten mit Überschriften angezeigt. Um Einträge einzeln mit ihren Eigenschaften aufgelistet anzuzeigen, leiten Sie das Cmdlet an Format-Liste .

Manchmal haben Sie eine Ausgabe, die für das Powershell-Fenster zu breit wird. Wenn das passiert, erzwingt Powershell eine Listenausgabe. Um sicherzustellen, dass Sie das Tabellenformat beibehalten, leiten Sie Ihre Ausgabe an Format-Tabelle .

Von der Befehlszeile zum Scripting: Die nächsten Schritte

Sobald Sie sich mit der Skripterstellung vertraut gemacht haben, müssen Sie die Cmdlets in eine Textdatei eingeben und speichern. Wenn Sie nervös sind, Skripte auszuprobieren, sollten Sie es nicht sein. Microsoft hat zu jedem Cmdlet eine enorme Menge an Dokumentation. Dies ist mehr als die bereits umfangreiche Hilfedokumentation, also schauen Sie sich Technet [Nicht mehr verfügbar] an.

Wenn Sie Powershell lernen, teilen Sie uns in den Kommentaren mit, worauf Sie sich am meisten freuen. Wenn Sie etwas mehr Erfahrung haben, würden wir uns über weiterführende Themen freuen, die Sie gerne behandelt sehen würden.

Teilen Teilen Tweet Email Löschen Sie diese Windows-Dateien und -Ordner, um Speicherplatz freizugeben

Müssen Sie Speicherplatz auf Ihrem Windows-Computer freigeben? Hier sind die Windows-Dateien und -Ordner, die sicher gelöscht werden können, um Speicherplatz freizugeben.

Weiter lesen
Verwandte Themen
  • Fenster
  • Programmierung
  • Power Shell
  • Skripting
Über den Autor Michael McConnell(44 Artikel veröffentlicht)

Michael benutzte keinen Mac, als sie dem Untergang geweiht waren, aber er kann in Applescript programmieren. Er hat Abschlüsse in Informatik und Englisch; er schreibt seit einiger Zeit über Mac, iOS und Videospiele; und er ist seit über einem Jahrzehnt ein IT-Affe am Tag und hat sich auf Skripting und Virtualisierung spezialisiert.

Mehr von Michael McConnell

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren