28. Februar 2019 Aleksej Kusnir

PowerShell Befehle Überblick und Beispiele

Ich möchte Ihnen mit diesem Blogpost zeigen, wie das eigentlich mit den PowerShell Befehlen funktioniert.

Wie Sie diese aufrufen und wie Sie ermitteln, welche PowerShell Befehle Sie nutzen können. 

PowerShell Befehle sind Funktionen für eine bestimmte Anwendung. Die werden in PowerShell CMDLETS genannt. 

CMDLETS sind Bestandteile eines PowerShell Modules. 

Ein PowerShell Module ist nichts weiter, als eine Sammlung von PowerShell CMDLETS, also PowerShell Befehlen.

Lassen Sie uns gemeinsam erstmal anschauen wie so ein PowerShell Module aussieht und wie Sie dessen PowerShell CMDLETS ermitteln können. 

Was sind PowerShell Module und CMDLETS?

Nehmen wir mal an, Sie möchten mit PowerShell das Active Directory verwalten. Falls Sie es nicht kennen, Active Directory ist das Verzeichnissystem der Firma Microsoft.

Damit Sie im Active Directory z.B. Benutzer oder Gruppen anlegen können, müssen Sie PowerShell Befehle ausführen.

Das Active Directory Module für PowerShell heißt „ActiveDirectory“.

Sie müssen dies zuerst importieren, damit Sie die Befehle für das Active Directory nutzen können.

Das geht mit dem Befehl Import-Module.

Wie Sie das genau machen, zeige ich Ihnen gleich.

Sehen wir uns erstmal an, welche PowerShell Befehle Sie standardmäßig in Windows ausführen können, ohne ein PowerShell Module zuerst zu importieren.

Alle Befehle eines Modules anzeigen

Öffnen Sie mal eine PowerShell Konsole und geben Sie Get-Module ein, damit sehen Sie die bereits importierten PowerShell Module

Get-Module -All 

Mit dem Befehl Get-Command sehen Sie alle PowerShell Befehle aller Module, die momentan in Ihrem System verfügbar sind.

Get-Command

Sie können auch mal die Anzahl der Befehle zählen lassen.

(Get-Command).Count 

Ich habe als Beispiel den Befehl auf einem Windows Server 2019 ausgeführt.

Sie möchten nun die PowerShell Befehle eines bestimmten PowerShell Modules sehen?

Get-Command -Module NetTCPIP

Lassen Sie uns nun gemeinsam die Befehle für die Netzwerkadapter testen und die Konfiguration der Adapter anzeigen lassen.

PowerShell Befehle ausführen

Wenn Sie z.B. PowerShell Befehle für die Netzwerkeinstellungen filtern wollen, dann können Sie dies auch mit get-command tun, indem Sie die Namen der Funktionen filtern.

Hier lassen wir uns nur die Befehle anzeigen, die im Namen Get-NetIP haben.

Get-Command -Name „*Get-NetIP“

Nun möchte wir uns nur die Netzwerkadapter anzeigen lassen. Dazu nutzen wir den Befehl „Get-NetIPInterface“ aus der Liste.

Get-NetIPInterface

Alles klar nun Wissen Sie, wie Sie ein PowerShell Befehl verwenden und auch suchen können.

Nun möchte Ich Ihnen zeigen, wie Sie neue PowerShell Module Importieren und so zusätzliche Befehle für die entsprechende Anwendung nutzen können.

Als Beispiel möchte Ich Ihnen das Active Directory Module präsentieren.

PowerShell Befehle für Active Directory

Um die PowerShell Funktionen für Actice Directory zu nutzen, müssen Sie erstmal das PowerShell Module dazu importieren.

Dazu gibt es zwei Möglichkeiten.

  1. Sie haben einen Domänencontroller. Dort ist das PowerShell Module bereits installiert. 
  1. Oder Sie nutzen die RSAT (Remotserver-Verwaltungstools) im Active Directory Befehle z.B. auf Ihrem Windows 10 PC auszuführen. 
    1. Download RSAT für Windows 10 

Importieren Sie das Active Directory PowerShell Module mit dem Befehl Import-Module

Import-Module activedirectory

Get-Module 

Nun können Sie sich alle Befehle anzeigen lassen, die im Active Directory Module enthalten sind.

Get-Command -Module activedirectory

So, nun haben Sie erfolgreich ein Active Directory Module importiert.

Ich möchte Ihnen nun zum Ende dieses Beitrags die wichtigsten Befehle zeigen, die Ihnen das Leben bereits in kurzer Zeit erleichtern.

Liste: Nützliche PowerShell Befehle 

Dateien und Ordner

CMDLETBeispielBeschreibung
New-ItemNeue Datei erstellen
New-ItemNeuen Ordner erstellen
Get-ItemDatei oder Ordner anzeigen
Get-ChildItemAlle Dateien und Ordner anzeigen
Remove-ItemDatei löschen
Copy-ItemDatei kopieren
Export-CSVAusgabe in CSV Exportieren
Move-ItemDatei oder Ordner verschieben
Compress-ArchiveZIP Archiv

Windows Prozesse

CMDLETBeispielBeschreibung
Get-ProcessAlle Prozesse anzeigen
Get-ProcessGet-Process Name "Name"Einen bestimmten Prozess anzeigen
Stop-ProcessStop-Process "Name"Prozess Stoppen

Windows Informationen

CMDLETBeispielBeschreibungInteressante Links
[environment]::OSVersion.VersionWindows Version anzeigenhttps://devblogs.microsoft.com/scripting/use-powershell-to-find-operating-system-version/
$PSVersionTable.PSVersionPowerShell Version anzeigenhttps://devblogs.microsoft.com/scripting/powertip-check-version-of-powershell/
get-dateAktuelles Datum anzeigenhttp://www.techguy.at/powershell-get-date/
Get-WinEventGet-WinEvent -ListLog *Windows Events anzeigenhttps://4sysops.com/archives/search-the-event-log-with-the-get-winevent-powershell-cmdlet/
Start-ProcessStart-Process msiexec.exe -Wait -ArgumentList '/I C:\temp\test.msi /quiet'MSI Anwendung installierenhttps://powershellexplained.com/2016-10-21-powershell-installing-msi-files/
Get-CounterGet-Counter -ListSet *Windows Counter anzeigenhttps://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.diagnostics/get-counter?view=powershell-5.1
Get-NetIPAddressNetzwerkeinstellung der Netzwerkadapter anzeigenIP-Adresse anzeigenhttps://docs.microsoft.com/en-us/powershell/module/nettcpip/get-netipaddress?view=win10-ps
Get-NetAdapterNetzwerkadapter anzeigenNetzwerkadapter anzeigenhttps://docs.microsoft.com/en-us/powershell/module/netadapter/get-netadapter?view=win10-ps

WMI & CIM Objekte

CMDLETBeispielBeschreibungInteressante Links
Get-HotFixInstallierte Updates anschauenhttps://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-hotfix?view=powershell-5.1
Get-WMIObject -Class WIN32_ProductInstallierte Software anschauenhttps://devblogs.microsoft.com/scripting/use-powershell-to-quickly-find-installed-software/
Get-WmiObject -Class Win32_NetworkAdapterConfigurationGet-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUENetzwerk Einstellungenhttps://blogs.technet.microsoft.com/danstolts/2012/01/using-powershell-to-get-or-set-networkadapterconfiguration-view-and-change-network-settings-including-dhcp-dns-ip-address-and-more-dynamic-and-static-step-by-step/
Get-WmiObject win32_processorCPU Infohttps://devblogs.microsoft.com/scripting/use-powershell-and-wmi-to-get-processor-information/

Lokale Benutzer & Gruppen

CMDLETBeispielBeschreibung
Get-LocalUserLokale Benutzer anzeigen
Get-LocalGroupLokale Gruppen anzeigen
Add-LocalGroupMemberLokalen Benutzer zu Administratoren Gruppen hinzufügen

PING| IPCONFIG | NSLOOKUP | TRACERT

CMD.exeCMDLETBeispielBeschreibung
pingTest-Connection oder Test-NetConnectionTest-Connection DNSName oder Test-NetConnection DNSNameICMP Verbindung prüfen
ipconfigGet-NetIPConfigurationGet-NetIPConfigurationIP Configuration anzeigen
nslookupResolve-DnsNameResolve-DnsName "DNSName"DNS
tracertTest-NetConnectionTest-NetConnection "DNSNAME" –TraceRouteIP Route prüfen

Fazit

Wir haben nun zusammen gelernt, was PowerShell Befehle sind und wie Sie diese suchen und ausführen können.

Zusätzlich habe Ich Ihnen gezeigt, wie Sie ein PowerShell Module z.B. für Active Directory importieren und anwenden.

Des Weiteren haben Sie in diesem Artikel eine Liste mit den wichtigsten PowerShell Befehlen erhalten.

Ich hoffe ich konnte Ihnen mit diesem Beitrag weiterhelfen und freue mich über ein Feedback als Kommentar.

Ich wünsche Ihnen viel Erfolg.

Aleksej Kusnir