Hast du jemals versucht, PowerShell-Code zu schreiben und bist stecken geblieben? Mach dir keine Sorgen mehr! Eine der besten Möglichkeiten, gut in PowerShell zu werden, besteht darin, die Grundlagen zu verstehen. Das Kennen einiger grundlegender PowerShell-Befehle kann dich zum Profi machen, und du automatisierst administrative Aufgaben effizienter.
In diesem Tutorial lernst du die grundlegenden PowerShell-Cmdlets kennen, die du kennen musst, um deine PowerShell-Erfahrung interessanter zu gestalten.
Voraussetzungen
Dieses Tutorial wird eine praktische Demonstration sein, hat aber nicht viele Voraussetzungen. Wenn du mitmachen möchtest, funktioniert jedes System (Windows oder Linux) mit PowerShell 5.1 oder höher. Obwohl die Befehle unter Verwendung von Windows PowerShell gezeigt werden, funktionieren die unten gezeigten Beispiele plattformübergreifend in PowerShell 7+.
Holen von Hilfsinformationen zu Befehlen mit Get-Help
Hast du jemals Code geschrieben wie ein Profi, ohne Hilfe zu bekommen? Nun, es wird immer Bedarf an Hilfe geben, während du Code schreibst. Egal, ob du Code oder Befehle in einer Befehlszeilenumgebung ausführst, das Get-Help
-Cmdlet ist nützlich.
Beginnen wir dieses Tutorial, indem wir lernen, wie das Get-Help
-Cmdlet funktioniert.
Der Get-Help
-Befehl bietet Ihnen die benötigten Anleitungen, um jeden Befehl effektiv zu verwenden, ohne Fehler zu erhalten. Betrachten Sie es als Dokumentation für jeden der PowerShell-Befehle.
Öffnen Sie PowerShell als Administrator und führen Sie den unten stehenden Get-Help
-Befehl aus, um detaillierte (-Detailed
) Informationen zu einem Befehl anzuzeigen, wie z.B. den Get-ExecutionPolicy
-Befehl.

Anstelle von nur detaillierten Informationen möchten Sie vielleicht die vollständigen Informationen zu einem Befehl anzeigen. Wenn ja, fügen Sie stattdessen den -Full
-Parameter in den Get-Help
-Befehl ein.
Führen Sie den folgenden Code aus, um die vollständigen (-Full
) Informationen über den Get-Help
-Befehl selbst zu erhalten.

Vielleicht benötigen Sie noch mehr Beispiele, um Fehler zu vermeiden, wenn Sie den Befehl ausführen. In diesem Fall fügen Sie den -Examples
-Parameter hinzu, um Beispiele zum Schreiben eines Befehls zu sehen.
Führen Sie den unten stehenden Get-Help
-Befehl aus, um Beispiele (-Examples
) dafür zu erhalten, wie Sie den Get-Process
-Befehl verwenden können.

Abrufen von Computerprozessen mit Get-Process
Erinnern Sie sich an den Windows Task-Manager, der alle Ihre Prozesse, Dienste, Anwendungen und dergleichen anzeigt? Gut! Das Get-Process
-Cmdlet ist ein grundlegendes, aber wesentliches Cmdlet, das Ihnen in wenigen Schritten Zugriff auf alle Prozesse Ihres Computers ermöglicht, ohne den Task-Manager zu öffnen.
Führen Sie den folgenden Befehl aus, um eine Liste aller Systemprozesse in tabellarischer Form zu erhalten.

Wenn ein Prozess einfriert und Ihren Computer langsam macht, stoppen Sie den Prozess, indem Sie das
Get-Process
-Cmdlet an dasStop-Process
-Cmdlet anhängen. Zum Beispiel: führen SieGet-Process -Id 1252 | Stop-Process
aus, wobei-Id 1252
die Prozess-ID des zu stoppenden Prozesses angibt.
Abrufen der PowerShell-Sitzungshistorie mit Get-History
Es könnte notwendig sein, Ihre kürzlich ausgeführten Befehle zu überprüfen, beispielsweise um zu überprüfen, ob der zuletzt ausgeführte Befehl korrekt ist oder ob Sie tatsächlich einen Befehl ausgeführt haben. Aber hat PowerShell einen Befehlsverlauf? Ja! Das `Get-History`-Cmdlet gibt ein Objekt mit allen Ihren kürzlich ausgeführten Befehlen in Ihrer aktuellen PowerShell-Sitzung zurück.
Führen Sie den folgenden Befehl aus, um eine Liste aller kürzlich ausgeführten Befehle in Ihrer aktuellen Sitzung zu erhalten.

Wenn Sie bevorzugen, bestimmte Befehle aus dem Verlauf anzuzeigen, fügen Sie den Parameter `-Id` hinzu, gefolgt von der ID-Nummer des Befehls aus dem Verlauf hinzu. Führen Sie zum Beispiel `Get-History -Id 2` aus, um den zweiten Befehl im Verlauf anzuzeigen.
Anzeigen von Systemdiensten mit Get-Service
Wie das `Get-Process`-Cmdlet ermöglicht es Ihnen auch PowerShell, alle auf Ihrem System laufenden Dienste anzuzeigen. Das `Get-Service`-Cmdlet ermöglicht es Ihnen, alle Dienste anzuzeigen, die beispielsweise ein Datenbankserver oder eine Anwendung sein könnten, die die Bildschirmhelligkeit Ihres Computers automatisch steuert.
Führen Sie den folgenden Befehl aus, um eine Liste aller Dienste auf Ihrem System in Tabellenformat zu erhalten. Mit diesem Befehl können Sie sogar gestoppte Dienste anzeigen.

Vielleicht suchen Sie nach Diensten, die mit einem bestimmten Zeichen beginnen. Wenn ja, fügen Sie ein Platzhalterzeichen (*) hinzu, um das gewünschte Ergebnis zu erzielen.
Führen Sie den Befehl Get-Service
unten aus und übergeben Sie den ersten Buchstaben und ein Sternchen (A*
) der Dienste, die Sie anzeigen möchten. Durch Hinzufügen des Platzhalterzeichens können Sie alle Dienste filtern, die nicht mit dem Buchstaben ‚A‘ beginnen.

Ausführen von Hintergrundjobs mit Start-Job
Das Schreiben von Codes kann ärgerlich sein, wenn noch so viel zu schreiben ist, aber ein einziger Befehl ewig dauert. Kein Problem! PowerShell bietet ein Cmdlet zum Ausführen von Hintergrundjobs in Ihrer Sitzung. Das Start-Job
-Cmdlet bietet eine PowerShell-Umgebung zum Ausführen von Code oder Befehlen als Hintergrundjob ohne Benutzerinteraktion.
Führen Sie den Befehl Start-Job
unten aus, um einen Hintergrundjob für das Get-Command
-Cmdlet zu starten. Das Starten eines Hintergrundjobs führt das Get-Command
-Cmdlet aus, ohne die Ausgabe auf Ihrer Befehlszeile anzuzeigen.

Da es sich um Hintergrundjobs handelt, wie überprüfen Sie, ob ein Job noch läuft oder abgeschlossen ist? Führen Sie das
Get-Job
-Cmdlet aus, um alle Jobs in Ihrer Sitzung zu erhalten.
Ändern des Arbeitsverzeichnisses mit Set-Location
Es gibt Zeiten, in denen Sie Verzeichnisse ändern müssen, z. B. beim Ausführen eines Skripts oder eines Programms von einem bestimmten Speicherort aus. Aber wie ändern Sie Verzeichnisse? Lassen Sie das Set-Location
-Cmdlet Ihnen dabei helfen. Das Set-Location
-Cmdlet setzt das aktuelle Arbeitsverzeichnis auf das von Ihnen in einem Befehl angegebene Verzeichnis.
Führen Sie den folgenden Code aus, um das aktuelle Arbeitsverzeichnis auf C:\Users\hp\Desktop festzulegen. Change hp
mit dem Benutzernamen Ihres Computers.
Unten sehen Sie in der Eingabeaufforderung, dass C:\Users\hp\Desktop jetzt das Arbeitsverzeichnis ist.

Überprüfen, ob Pfade mit Test-Path existieren
PowerShell kann einen Fehler anzeigen, wenn Sie versuchen, auf eine Datei zuzugreifen, die nicht vorhanden ist. Wie vermeidet man das? Das Test-Path
-Cmdlet ermöglicht es Ihnen, zu überprüfen, ob ein Pfad vorhanden ist oder nicht, mit seiner intuitiven Syntax.
Erstellen Sie jetzt einen Ordner auf dem Desktop und benennen Sie ihn NewFolder.
Führen Sie den Befehl Test-Path
unten aus, gefolgt vom Pfad, den Sie testen möchten. Für dieses Beispiel prüft der Befehl, ob der Pfad C:\Users\hp\Desktop\NewFolder vorhanden ist.
Nachfolgend sehen Sie den Befehl, der einen Wert von True zurückgibt, da der Pfad existiert. Andernfalls erhalten Sie eine Ausgabe von False.

Umwandeln von PowerShell-Objekten in HTML mit ConvertTo-HTML
Wenn Sie Ihre Daten lieber in organisierter Form haben möchten, konvertieren Sie Ihre Daten mit dem ConvertTo-Html
-Befehl. Grundlegend nimmt der Befehl die Ausgabedatei entgegen, die Sie konvertieren möchten, und den Dateinamen, unter dem Sie sie speichern möchten.
Führen Sie den folgenden Befehl aus, um eine Liste aller PowerShell-Befehle (Get-Command
) im Speicher zu sammeln und die Liste in eine HTML-Datei namens Command.html
zu konvertieren.
Die HTML-Datei wird auf Ihrem Desktop gespeichert, da Sie zuvor das Arbeitsverzeichnis geändert haben. Um die HTML-Datei stattdessen an einem anderen Ort zu speichern, geben Sie den vollständigen Pfad an. Zum Beispiel:
Get-Command | ConvertTo-HTML > C:\Temp\Commands.html
Exportieren von PowerShell-Objekten nach CSV mit Export-CSV
Wenn Sie denken, dass ein Bericht im CSV-Format besser wäre als im HTML-Format, verwenden Sie das Export-CSV
Cmdlet. Ähnlich wie das ConvertTo-Html
Cmdlet erlaubt Ihnen das Export-CSV
Cmdlet, Daten in eine CSV-Datei zu exportieren.
Führen Sie den folgenden Befehl aus, um eine Liste der PowerShell-Befehle (Get-Command
) zu sammeln, und exportieren Sie die Liste als CSV-Datei (Export-CSV
) mit dem Namen Commands.csv
.
Ähnlich dem ConvertTo-Html Cmdlet können Sie auch einen Exportpfad für die CSV-Datei angeben, wie folgt:
Get-Command | Export-CSV C:\Temp\Commands.csv
Öffnen Sie die Commands.csv Datei, und Sie werden etwas Ähnliches wie unten sehen. Nicht schlecht, oder?

Anzeige aller verfügbaren PowerShell-Befehle mit Get-Command
Der letzte PowerShell-Befehl in der Liste ist das Get-Command
Cmdlet. Das Get-Command
Cmdlet listet im Grunde alle verfügbaren PowerShell-Befehle in tabellarischer Form auf, die Sie ausführen können. Aber wie Sie in den vorherigen Beispielen gesehen haben, wissen Sie, dass das nicht alles ist, was das Get-Command
kann.
Vielleicht möchten Sie die Cmdlets oder die Aliase selektiv auflisten. Wenn ja, fügen Sie den Parameter -CommandType
zum Get-Command
-Cmdlet hinzu, um die Ausgabe nach dem von Ihnen angegebenen Befehlstyp zu filtern. Der Wert des Parameters -CommandType
kann Alias
, Cmdlet
oder Function
sein.
Führen Sie den folgenden Befehl Get-Command
aus, um nur Cmdlets (-CommandType Cmdlet
) mit Namen zu listen, die mit ‚G‘ beginnen (-Name G*
).

Eine weitere Möglichkeit, die Ausgabe des Get-Command
zu filtern, besteht darin, sie an das Select-Object
-Cmdlet zu übergeben. Wie Sie wissen, wird das Objekt, das vom Get-Command
-Cmdlet zurückgegeben wird, in einer Tabellenformat zurückgegeben. In dieser Tabelle stellen die Spaltennamen die Eigenschaften dar, die Sie aus dem Objekt auswählen können.
Führen Sie den unten stehenden Get-Command
-Befehl aus, um eine Liste aller PowerShell-Befehle zu sammeln und die Anzeige so zu filtern, dass die Definitionseigenschaft jedes Befehls angezeigt wird (Select-Object -Property Definition
).

Abschluss
Dieses Tutorial hat Ihnen eine gründliche Anleitung zum Ausführen grundlegender PowerShell-Befehle gegeben. Bis jetzt sollten Sie wissen, wie Sie umfangreich Befehle verketten und ausführen können, ohne jemals beim Codieren stecken zu bleiben.
Wie könnten Sie nun dieses neu gefundene Wissen weiterentwickeln? Vielleicht lernen, wie man in PowerShell-Skripten mehrzeilige Befehle schreibt, ohne die Dinge durcheinander zu bringen?
Source:
https://adamtheautomator.com/basic-powershell-commands/