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
Mit dem Befehl Get-Command sehen Sie alle PowerShell Befehle aller Module, die momentan in Ihrem System verfügbar sind.
Sie können auch mal die Anzahl der Befehle zählen lassen.
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?
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.
Nun möchte wir uns nur die Netzwerkadapter anzeigen lassen. Dazu nutzen wir den Befehl „Get-NetIPInterface“ aus der Liste.
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.
- Sie haben einen Domänencontroller. Dort ist das PowerShell Module bereits installiert.
- Oder Sie nutzen die RSAT (Remotserver-Verwaltungstools) im Active Directory Befehle z.B. auf Ihrem Windows 10 PC auszuführen.
- Download RSAT für Windows 10
Importieren Sie das Active Directory PowerShell Module mit dem Befehl Import-Module
Nun können Sie sich alle Befehle anzeigen lassen, die im Active Directory Module enthalten sind.
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
CMDLET | Beispiel | Beschreibung |
---|---|---|
New-Item | Neue Datei erstellen | |
New-Item | Neuen Ordner erstellen | |
Get-Item | Datei oder Ordner anzeigen | |
Get-ChildItem | Alle Dateien und Ordner anzeigen | |
Remove-Item | Datei löschen | |
Copy-Item | Datei kopieren | |
Export-CSV | Ausgabe in CSV Exportieren | |
Move-Item | Datei oder Ordner verschieben | |
Compress-Archive | ZIP Archiv |
Windows Prozesse
CMDLET | Beispiel | Beschreibung |
---|---|---|
Get-Process | Alle Prozesse anzeigen | |
Get-Process | Get-Process Name "Name" | Einen bestimmten Prozess anzeigen |
Stop-Process | Stop-Process "Name" | Prozess Stoppen |
Windows Informationen
CMDLET | Beispiel | Beschreibung | Interessante Links |
---|---|---|---|
[environment]::OSVersion.Version | Windows Version anzeigen | https://devblogs.microsoft.com/scripting/use-powershell-to-find-operating-system-version/ | |
$PSVersionTable.PSVersion | PowerShell Version anzeigen | https://devblogs.microsoft.com/scripting/powertip-check-version-of-powershell/ | |
get-date | Aktuelles Datum anzeigen | http://www.techguy.at/powershell-get-date/ | |
Get-WinEvent | Get-WinEvent -ListLog * | Windows Events anzeigen | https://4sysops.com/archives/search-the-event-log-with-the-get-winevent-powershell-cmdlet/ |
Start-Process | Start-Process msiexec.exe -Wait -ArgumentList '/I C:\temp\test.msi /quiet' | MSI Anwendung installieren | https://powershellexplained.com/2016-10-21-powershell-installing-msi-files/ |
Get-Counter | Get-Counter -ListSet * | Windows Counter anzeigen | https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.diagnostics/get-counter?view=powershell-5.1 |
Get-NetIPAddress | Netzwerkeinstellung der Netzwerkadapter anzeigen | IP-Adresse anzeigen | https://docs.microsoft.com/en-us/powershell/module/nettcpip/get-netipaddress?view=win10-ps |
Get-NetAdapter | Netzwerkadapter anzeigen | Netzwerkadapter anzeigen | https://docs.microsoft.com/en-us/powershell/module/netadapter/get-netadapter?view=win10-ps |
WMI & CIM Objekte
Immer die WMIObjekt und das dazu gestellt CIM Objekt.
WMI oder CIM?
https://devblogs.microsoft.com/scripting/should-i-use-cim-or-wmi-with-windows-powershell/
Einführung in WMI und CIM
https://devblogs.microsoft.com/powershell/introduction-to-cim-cmdlets/
CMDLET | Beispiel | Beschreibung | Interessante Links |
---|---|---|---|
Get-HotFix | Installierte Updates anschauen | https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get-hotfix?view=powershell-5.1 | |
Get-WMIObject -Class WIN32_Product | Installierte Software anschauen | https://devblogs.microsoft.com/scripting/use-powershell-to-quickly-find-installed-software/ | |
Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE | Netzwerk Einstellungen | https://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_processor | CPU Info | https://devblogs.microsoft.com/scripting/use-powershell-and-wmi-to-get-processor-information/ |
Lokale Benutzer & Gruppen
CMDLET | Beispiel | Beschreibung |
---|---|---|
Get-LocalUser | Lokale Benutzer anzeigen | |
Get-LocalGroup | Lokale Gruppen anzeigen | |
Add-LocalGroupMember | Lokalen Benutzer zu Administratoren Gruppen hinzufügen |
PING| IPCONFIG | NSLOOKUP | TRACERT
CMD.exe | CMDLET | Beispiel | Beschreibung |
---|---|---|---|
ping | Test-Connection oder Test-NetConnection | Test-Connection DNSName oder Test-NetConnection DNSName | ICMP Verbindung prüfen |
ipconfig | Get-NetIPConfiguration | Get-NetIPConfiguration | IP Configuration anzeigen |
nslookup | Resolve-DnsName | Resolve-DnsName "DNSName" | DNS |
tracert | Test-NetConnection | Test-NetConnection "DNSNAME" –TraceRoute | IP 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