Die Bedeutung von Sys­tem­ad­mi­nis­tra­to­ren in Un­ter­neh­men darf man kei­nes­falls un­ter­schät­zen: Denn nur mit einer zu­ver­läs­si­gen und durch­gän­gig funk­tio­nie­ren­den IT-In­fra­struk­tur kann eine Firma das Maximum ihrer wirt­schaft­li­chen Leis­tungs­fä­hig­keit erreichen. Dies erfordert, je nach Größe der je­wei­li­gen Or­ga­ni­sa­ti­on, die Über­wa­chung und Kontrolle von Dutzenden, wenn nicht sogar Hunderten von Rechnern gleich­zei­tig. Eine Mam­mut­auf­ga­be, die nur ge­schul­tes Fach­per­so­nal mit einem tiefen Einblick in sys­tem­in­ter­ne Zu­sam­men­hän­ge be­wäl­ti­gen kann.

Tritt nun bei mehreren Rechnern gleich­zei­tig ein Problem auf oder muss eine neue Si­cher­heits­lö­sung schnellst­mög­lich auf das gesamte Netzwerk geladen werden, wäre es für einen Ad­mi­nis­tra­tor weder zeit­ef­fi­zi­ent noch wirt­schaft­lich, jedes Gerät einzeln auf­zu­su­chen und immer dieselben Hand­grif­fe zu wie­der­ho­len. Die Windows Power­Shell er­mög­licht es, solche Prozesse immens zu be­schleu­ni­gen und Rou­ti­ne­auf­ga­ben wei­test­ge­hend zu au­to­ma­ti­sie­ren. Dadurch wird die Arbeit des Sys­tem­ad­mi­nis­tra­tors deutlich ver­ein­facht. Was die Software noch alles kann, erfahren Sie ebenfalls in unserem Artikel.

Was ist Windows Power­Shell?

Windows Power­Shell ist, wie der Name schon sagt, eine so­ge­nann­te „Shell“. In der In­for­ma­ti­ons­tech­nik versteht man darunter eine Schnitt­stel­le zwischen einem Computer und seinem Benutzer. Der englische Begriff „Shell“ bedeutet „Mu­schel­scha­le“, wird im über­tra­gen­den Sinne aber zur Be­zeich­nung einer äußeren Hülle verwendet. So auch in der In­for­ma­tik: Dort be­zeich­net man mit dem Begriff die sichtbare Benutzer-Ober­flä­che, über die man mit den sys­tem­in­ter­nen Funk­tio­nen eines Computers in­ter­agie­ren kann.

Shells sind in der Regel kom­man­do­ori­en­tiert und werden deshalb aus­schließ­lich per Tastatur und Text­ein­ga­ben gesteuert. Sie bilden damit eine Al­ter­na­ti­ve zu gra­fi­schen Be­nut­zer­ober­flä­chen (graphical user in­ter­faces, kurz: GUI), auf denen man vorrangig mit der Maus navigiert – wie bei­spiels­wei­se dem Windows-Explorer. Da Shells darüber hinaus Zugang zu deutlich mehr und tie­fer­lie­gen­den Funk­tio­nen und Kom­po­nen­ten eines PCs gewähren, werden sie von vielen IT-Profis und Sys­tem­ad­mi­nis­tra­to­ren bevorzugt.

Warum gibt es Windows Power­Shell?

Bis vor kurzem waren bei DOS- be­zie­hungs­wei­se Windows-Be­triebs­sys­te­men die Kom­man­do­zei­le command.com und die Ein­ga­be­auf­for­de­rung cmd.exe die stan­dard­mä­ßig genutzten Shells. Mit ihnen können fort­ge­schrit­te­ne Com­pu­ter­nut­zer Kon­so­len­an­wen­dun­gen öffnen, Pro­blem­be­he­bun­gen durch­füh­ren oder in den Lauf­wer­ken eines PCs na­vi­gie­ren. Über den Befehl netstat ist es zum Beispiel möglich, grund­le­gen­de Daten über sämtliche Netz­werk­ak­ti­vi­tä­ten zu erhalten. Jedoch fielen command.com und cmd.exe schon immer durch zwei Probleme auf: Nicht alle Sys­tem­kom­po­nen­ten sind über sie er­reich­bar und ihre Skript­spra­chen gelten hin­sicht­lich ihrer Funk­tio­na­li­tät als ein­ge­schränkt. Somit galten sie schon seit geraumer Zeit als nicht so aus­ge­reift wie die gängigen Linux- und Unix-Shells.

Bei den Ent­wick­lern von Microsoft bestand daher schon seit den 90er-Jahren der Plan, diese Be­schrän­kun­gen abzubauen. Im Laufe der Zeit ent­wi­ckel­ten sie ver­schie­de­ne Shells, mit denen dieses Vorhaben mal mehr, mal weniger gut gelang. Als besonders weg­wei­send entpuppte sich letzt­end­lich Monad, das 2003 erstmals vor­ge­stellt und drei Jahre später in Power­Shell umbenannt wurde.

Durch Mi­cro­softs „Common En­gi­nee­ring Criteria“, laut denen seit 2009 alle Server-Produkte des Un­ter­neh­mens die Power­Shell un­ter­stüt­zen müssen, ist selbige zur zentralen Ver­wal­tungs- und Au­to­ma­ti­sie­rungs­lö­sung in Windows avanciert. Ab Windows 2008 wurde sie optional, bei späteren Versionen dann stan­dard­mä­ßig mit dem Be­triebs­sys­tem aus­ge­lie­fert und ist als Open-Source-Framework auch für frühere Windows-Versionen als Download verfügbar.

Im Jahr 2016 folgte dann der Ent­schluss, die Shell platt­form­un­ab­hän­gig an­zu­bie­ten. Mi­cro­softs Intention dahinter: Power­Shell soll künftig auch abseits von Windows, also auf Linux und macOS, zum Uni­ver­sal­werk­zeug für Sys­tem­ad­mi­nis­tra­to­ren werden. Seitdem ver­brei­tet sich die Shell immer stärker und findet stetig neue Anhänger. Zu­sam­men­ge­fasst kann man also sagen, dass Power­Shell den lange über­fäl­li­gen Nach­fol­ger der Ein­ga­be­auf­for­de­rung darstellt.

Was un­ter­schei­det Power­Shell von der Ein­ga­be­auf­for­de­rung?

Aber was genau hebt das neue Microsoft-Framework nun von der alt­be­kann­ten Ein­ga­be­auf­for­de­rung ab? Um es einfach zu sagen: Power­Shell hat alle Funk­tio­nen von cmd.exe, kann vieles davon sogar deutlich besser und erfüllt darüber hinaus weitere Aufgaben, die unter Windows bislang nicht denkbar waren.

Power­Shell bietet prin­zi­pi­ell dieselbe Band­brei­te an Befehlen wie cmd.exe. Im Grunde lässt sich Power­Shell mit aus­rei­chen­den Kennt­nis­sen über die gängigen Stan­dard­be­feh­le also genauso verwenden wie die Ein­ga­be­auf­for­de­rung. Jedoch erlaubt sie darüber hinaus auch den Zugriff auf tie­fer­ge­hen­de Windows-Interna, die mit cmd.exe bisher nicht an­steu­er­bar waren, zum Beispiel die Registry und die Windows Ma­nage­ment In­stru­men­ta­ti­on (WMI). Die Kom­man­do­zei­le von Windows Power­Shell folgt darüber hinaus der klaren Logik einer kon­sis­ten­ten Be­fehls­struk­tur und Syntax und ist in dieser Hinsicht sinn­vol­ler aufgebaut als cmd.exe.

Ein weiteres Merkmal, das die Windows Power­Shell besonders aus­zeich­net: Das Programm arbeitet im Gegensatz zur Ein­ga­be­auf­for­de­rung und zu Unix-ähnlichen Systemen voll­stän­dig ob­jekt­ba­siert, statt Er­geb­nis­se von Befehlen nur in Textform (strings) aus­zu­ge­ben. Jedes Objekt verfügt sowohl über Ei­gen­schaf­ten (pro­per­ties) als auch Methoden (methods), die vorgeben, wie es sich nutzen lässt. So re­prä­sen­tiert bei­spiels­wei­se das Windows-Pro­zess­ob­jekt Ei­gen­schaf­ten wie Prozess-Namen und -IDs sowie Methoden zum Pausieren und Beenden von Prozessen.

Da die Er­geb­nis­se von Befehlen grund­sätz­lich als .NET-Objekte aus­ge­ge­ben werden, ist es in Power­Shell per Pipe­lining möglich, deutlich kom­ple­xe­re Aufgaben zu erfüllen als mit cmd.exe. Das funk­tio­niert, indem der Output eines Objekts in der Pipe als Input für das nächste Objekt genutzt wird. So kann man zum Beispiel große und komplexe Da­ten­men­gen nach Da­tei­er­wei­te­run­gen filtern und als über­sicht­li­che Liste for­ma­tie­ren.

Windows Power­Shell ist zudem nicht nur einfach eine Kom­man­do­zei­le, sondern fungiert auch als um­fang­rei­che und leis­tungs­star­ke Scripting-Umgebung. In dieser kann man sowohl eigene Befehle schreiben als auch mehrere Befehle zu komplexen Skripten zu­sam­men­fas­sen, durch die Sys­tem­ma­nage­ment-Aufgaben er­leich­tert werden. Per Remoting ist es außerdem möglich, Skripte orts­un­ab­hän­gig auf beliebig vielen Systemen gleich­zei­tig laufen zu lassen und diese dadurch zu verwalten, ein­zu­rich­ten, zu erfassen und zu re­pa­rie­ren.

Diese Vielfalt an Mög­lich­kei­ten und Funk­tio­nen offenbart auch, was die vor­ran­gi­ge Ziel­grup­pe von Windows Power­Shell ist: IT-Profis und Sys­tem­ad­mi­nis­tra­to­ren, die über fundierte Kennt­nis­se im Umgang mit Shells verfügen und bereit sind, sich zugunsten der deutlich höheren Effizienz in die Windows Power­Shell ein­zu­ar­bei­ten. Für Nutzer, die haupt­säch­lich mit der gra­fi­schen Be­nut­zer­ober­flä­che von Windows arbeiten und nur spo­ra­disch auf die Ein­ga­be­auf­for­de­rung zu­rück­grei­fen, bietet Power­Shell hingegen keinen be­son­de­ren Mehrwert, zumal der Zeit­auf­wand für die Ein­ar­bei­tung recht hoch ist.

Im Folgenden fassen wir die Vor- und Nachteile von Windows Power­Shell gegenüber der Ein­ga­be­auf­for­de­rung noch einmal über­sicht­lich zusammen:

Was spricht für Power­Shell? Was spricht gegen Power­Shell?
Sämtliche Befehle aus der Ein­ga­be­auf­for­de­rung verfügbar Komplex und hohe Lernkurve
Zugriff auf tie­fer­lie­gen­de Windows-Interna wie die Registry und WMI Richtet sich vorrangig an IT-Profis und Sys­tem­ad­mi­nis­tra­to­ren
Ef­fi­zi­en­te­re Bedienung dank kon­sis­ten­ter Be­fehls­struk­tur und Syntax Kein ge­stei­ger­ter Nutzen für GUI-Verwender, die nur selten auf die Ein­ga­be­auf­for­de­rung zu­rück­grei­fen
Voll­stän­di­ge Ob­jekt­ori­en­tie­rung erlaubt die Aus­füh­rung kom­ple­xe­rer Aufgaben durch Pipe­lining Um­ge­wöh­nung vonnöten
Um­fang­rei­che Scripting-Umgebung er­mög­licht ef­fi­zi­en­te Au­to­ma­ti­sie­rung von Prozessen  
Orts­un­ab­hän­gi­ge Ad­mi­nis­tra­ti­on multipler Systeme per Remoting  

Wie funk­tio­niert Windows Power­Shell?

Power­Shell besteht im Grunde aus zwei Be­stand­tei­len, nämlich der Power­Shell Engine und der Power­Shell Scripting Language. Beide lassen sich separat von­ein­an­der oder auch in Kom­bi­na­ti­on mit­ein­an­der nutzen, um das Maximum an Funk­tio­na­li­tät aus dem Programm her­aus­zu­ho­len.

Die Power­Shell-Engine

Über den Kom­man­do­zei­len­in­ter­pre­ter (Englisch: command-line in­ter­pre­ter, kurz: CLI) von Power­Shell erhält der Benutzer via Tas­ta­tur­ein­ga­ben Zugang zu be­triebs­sys­tem­in­ter­nen Funk­tio­nen. Die ent­spre­chen­den Befehle des Programms nennt man „Cmdlets“ (ge­spro­chen „Com­mandlets“, was in etwa dem Wort „Be­fehl­chen“ ent­spricht) genannt. Gemäß einer kon­sis­ten­ten Syntax werden sie stets aus einem Verb und einem Sub­stan­tiv im Singular zu­sam­men­ge­setzt, zum Beispiel Stop-Process oder Sort-Object. Parameter werden in einem Cmdlet gemäß der Formel -Parameter [Wert] angegeben, zum Beispiel:

Get-EventLog System Newest 3 (zum Aufrufen der drei neuesten Einträge im System-Ereignisprotokoll)
Tipp

Zwar ist es Kanon bei Power­Shell, Befehle mit großem An­fangs­buch­sta­ben ein­zu­ge­ben, die Klein­schrei­bung funk­tio­niert aber ebenso.

Die mehr als 100 Kern-Cmdlets umfassen auch häufig genutzte Stan­dard­be­feh­le aus der Ein­ga­be­auf­for­de­rung, die neben anderen als so­ge­nann­te „Aliase“ verfügbar sind und Um­stei­gern die ersten Schritte mit der neuen Shell er­leich­tern sollen. So hat der zum Wechseln eines Ver­zeich­nis­ses gedachte Befehl cd bei­spiels­wei­se das Äqui­va­lent Set-Location, das exakt dieselbe Funktion erfüllt. Sämtliche vor­ge­fer­tig­ten Aliase lassen sich mit dem Cmdlet Get-Alias anzeigen. Darüber hinaus kann man mit dem Cmdlet Set-Alias auch eigene Aliase erstellen. Mit der folgenden Pipe können Sie bei­spiels­wei­se dem Befehl „notepad“ (für das Programm Notepad) das Alias „ed“ zuweisen, sodass zum Ausführen des Programms weniger Tas­ten­an­schlä­ge vonnöten sind:

Set-Alias ed notepad (um Notepad mit dem Befehl ed zu öffnen)
Set-Alias scr1 C:\Users\IEUser\Desktop\script1.ps1 (um ein Skript mit der Abkürzung scr1 zu starten)

Die folgende Tabelle enthält einige Beispiele für häufig genutzte Cmdlets und ihre ver­wand­ten Aliase:

Alias Cmdlet Funktion
cd Set-Location Aktuelles Ver­zeich­nis wechseln
dir Get-ChildItem Alle Elemente eines Ordners auflisten
gi Get-Item Ein be­stimm­tes Element aufrufen
ps Get-Process Alle Prozesse auflisten
gsv Get-Service Alle in­stal­lier­ten Dienste auflisten
gm Get-Member Alle Ei­gen­schaf­ten und Methoden eines Objekts anzeigen
clear Clear-Host Den Power­Shell-Host leeren

Die strikte und zugleich leichter nach­zu­voll­zie­hen­de Be­fehls­struk­tur von Power­Shell er­mög­licht es, ef­fi­zi­en­ter zu arbeiten als in der Ein­ga­be­auf­for­de­rung. Noch mehr Zeit gewinnt man durch Option, halb aus­ge­schrie­be­ne Cmdlets mit der Taste [Tab] au­to­ma­tisch zu ver­voll­stän­di­gen. In vielen Fällen erkennt das Programm sogar un­voll­stän­dig ein­ge­tipp­te Befehle.

Cmdlets lassen sich sowohl einzeln ausführen als auch per Pipe­lining mit­ein­an­der ver­knüp­fen, sodass der Output eines Objekts vom nach­fol­gen­den Objekt gelesen und wei­ter­ver­wen­det werden kann. Zum Hin­zu­fü­gen zweier Cmdlets in dieselbe Pipeline verwenden Sie einfach das |-Symbol. Auf diese Weise kann man zum Beispiel alle ver­füg­ba­ren Prozesse auflisten und im selben Zuge nach ihrer ID sortieren:

Get-Process | Sort-Object ID

Variablen definiert man mit dem $-Symbol. Sie können wie üblich zur Spei­che­rung von Outputs verwendet werden, um sie beim Pipe­lining zu einem späteren Zeitpunkt wie­der­auf­zu­grei­fen. Power­Shell ist dadurch sogar in der Lage, die Er­geb­nis­se mehrerer über eine Pipeline ver­knüpf­ter Befehle auf einmal zu speichern, zum Beispiel:

$a = (Get-Process | Sort-Object ID)

Die Power­Shell Scripting Language

Vieles an der Skript­spra­che von Power­Shell mag einem von C# und anderen Skript­spra­chen bekannt vorkommen. Mit ihr kann man nicht nur eigene Cmdlets schreiben (und bei Bedarf mit anderen Nutzern teilen), man kann auch mehrere Befehle in Folge in einer Skript-Datei mit dem Format .ps1 verpacken und damit den Funk­ti­ons­um­fang der Shell erweitern. Denkbar sind zahl­rei­che An­wen­dungs­bei­spie­le: von der Aus­füh­rung simpler Rou­ti­ne­auf­ga­ben bis hin zur nahezu voll­stän­di­gen Au­to­ma­ti­sie­rung von Über­wa­chungs- und Kon­troll­pro­zes­sen. Skripte enthalten dabei immer eine An­wen­dungs­be­schrei­bung und werden mit dem Präfix „.“ gefolgt vom voll­stän­di­gen Dateipfad aus­ge­führt. Ein Beispiel:

.C:\Users\IEUser\Desktop\script1.ps1

Was sind typische An­wen­dungs­be­rei­che der Power­Shell?

Aus­rei­chen­de Übung und Fach­kennt­nis vor­aus­ge­setzt, lassen sich mit Power­Shell viele Sys­tem­ver­wal­tungs­auf­ga­ben deutlich ef­fi­zi­en­ter gestalten. Im Folgenden erläutern wir Ihnen vier typische An­wen­dungs­bei­spie­le.

Ver­zeich­nis­or­ga­ni­sa­ti­on: Mehrere Dateien zugleich um­be­nen­nen

An­ge­nom­men, Sie müssen etwa 1.000 Dokumente des Schemas Text (1).docx, Text (2).docx usw. so um­be­nen­nen, dass die Leer­zei­chen im Da­tei­na­men durch Un­ter­stri­che ersetzt werden: Sich jedes Dokument einzeln vor­zu­neh­men, wäre dann nicht ratsam. Statt­des­sen würden Sie wahr­schein­lich eher mit cmd.exe arbeiten oder – noch besser – auf ein externes Tool zu­rück­grei­fen. Das Pipe­lining in Power­Shell erlaubt aber noch mehr Fle­xi­bi­li­tät beim Um­be­nen­nen großer Da­ten­men­gen.

Begeben Sie sich dafür zuerst in das Ver­zeich­nis, in dem sich die Dokumente befinden. Das geht ganz einfach mit dem Cmdlet Set-Location in Kom­bi­na­ti­on mit dem voll­stän­di­gen Dateipfad. Hier ein Beispiel:

Set-Location C:\Users\IEUser\Desktop\Text folder

Al­ter­na­tiv können Sie auch über den Windows-Explorer in das ent­spre­chen­de Ver­zeich­nis na­vi­gie­ren, in die Pf­ad­leis­te klicken und „power­shell“ eingeben, um ein Power­Shell-Fenster für das Ver­zeich­nis zu öffnen. Mit folgendem Cmdlet nennen Sie dann die aus­ge­wähl­ten Dokumente um:

Get-ChildItem *docx | Rename-Item -NewName {$_.name -replace " ","_"}

Zur Erklärung: Get-ChildItem listet alle Dateien im Ver­zeich­nis auf. Durch den Zusatz *docx werden nur die Word-Dokumente mit dem ent­spre­chen­den Format her­aus­ge­fil­tert – ebenfalls im Ordner be­find­li­che PDF-Dokumente würden also nicht be­rück­sich­tigt werden. Mit dem |-Symbol fügen Sie einen weiteren Befehl zur Pipeline hinzu, nämlich Rename-Item, der si­gna­li­siert, dass etwas umbenannt werden soll. -NewName gibt den neuen Namen anhand eines Skript­blocks an, der mit der Variable $_.name arbeitet, die das aktuelle Objekt re­prä­sen­tiert. Und .name ist die Ei­gen­schaft mit dem Da­tei­na­men. Zuletzt geben Sie mit dem Parameter -replace an, dass sämtliche Leer­zei­chen in Un­ter­stri­che um­ge­wan­delt werden sollen.

Da­ten­er­fas­sung: Laufende Dienste auf einem PC über­prü­fen

Vor der Im­ple­men­tie­rung einer neuen Si­cher­heits­lö­sung im Netzwerk sollten Sie über­prü­fen, welche Dienste auf einem be­stimm­ten PC bereits in­stal­liert sind. Grund­werk­zeug dafür ist das Cmdlet Get-Service, mit dem sämtliche Dienste auf­ge­lis­tet werden. Durch die Fil­ter­funk­tio­nen in Power­Shell können Sie sich auch nur eine Teilmenge der Er­geb­nis­se anzeigen lassen – zum Beispiel sämtliche laufende Dienste. Das funk­tio­niert mit folgendem Cmdlet:

Get-Service | Where-Object {$_.status -eq "running"}

Der Output von Get-Service wird hier an das Cmdlet Where-Object per Pipeline wei­ter­ge­lei­tet. Where-Object filtert sämtliche Dienste nach ihrem Status (dar­ge­stellt durch die Variable $_.status und den Parameter -eq "running") und listet die laufenden Dienste auf. Je nach Bedarf können Sie die vor­ge­fil­ter­te Liste auch nach Display-Namen sortieren lassen, indem Sie ein weiteres Cmdlet zur Pipeline hin­zu­fü­gen:

Get-Service | Where-Object {$_.status -eq "running"} | Sort-Object DisplayName
Tipp

Mit dem Pipeline-Zusatz more kann man die lange Dienst-Auf­lis­tung auch so um­struk­tu­rie­ren, dass man sie sei­ten­wei­se durch­blät­tern kann.

Feh­ler­dia­gno­se: Er­eig­nis­pro­to­koll nach Sys­tem­feh­lern durch­su­chen

Er­eig­nis­pro­to­kol­le (Englisch event logs) geben Sys­tem­ad­mi­nis­tra­to­ren Auf­schluss über Feh­ler­mel­dun­gen in An­wen­dun­gen, im Be­triebs­sys­tem oder in den Si­cher­heits­funk­tio­nen eines Geräts. Mit dem Befehl Get-EventLog können Sie diese Pro­to­kol­le einsehen und verwalten. Wollen Sie bei­spiels­wei­se einen Blick auf die Feh­ler­mel­dun­gen der Er­eig­nis­an­zei­ge „System“ werfen, geben Sie Folgendes ein:

Get-EventLog System | Where-Object {$_.entryType -Match "Error"}

Gibt Power­Shell zu viele Er­geb­nis­se aus, sodass Sie die Übersicht verlieren, können Sie die Liste mit dem Parameter -Newest 100 auf die neuesten 100 System-Log­ein­trä­ge be­schrän­ken, die an­schlie­ßend nach Fehlern gefiltert werden:

Get-EventLog System -Newest 100 | Where-Object {$_.entryType -Match "Error"}

De­tail­lier­te In­for­ma­tio­nen über einzelne Feh­ler­mel­dun­gen erhalten Sie, indem Sie den Output dieser Pipeline an das Cmdlet Format-List wei­ter­lei­ten:

Get-EventLog System -Newest 100 | Where-Object {$_.entryType -Match "Error"} | Format-List

Fern­war­tung: Dienste auf Re­mo­te­com­pu­tern kon­trol­lie­ren

Die Windows Ma­nage­ment In­stru­men­ta­ti­on (WMI) gewährt Zugriff auf nahezu alle Ein­stel­lun­gen und Funk­tio­nen von Windows-Computern und stellt damit das wich­tigs­te Werkzeug zur Au­to­ma­ti­sie­rung von Prozessen und zur Fern­war­tung digitaler Ar­beits­plät­ze dar. Das da­zu­ge­hö­ri­ge Cmdlet Get-WmiObject kann man auch für Re­mo­te­com­pu­ter anwenden, sodass Sie die Windows Power­Shell auch als Sys­tem­ver­wal­tungs­tool nutzen können. Benötigen Sie bei­spiels­wei­se In­for­ma­tio­nen der Klasse Win32_BIOS über einen Rechner im Netzwerk (dar­ge­stellt mit dem Parameter -Rech­ner­na­me), hilft Ihnen der folgende Befehl weiter:

Get-WmiObject Win32_Bios -Rechnername

Al­ter­na­tiv können Sie auch mit dem Parameter -Class gefolgt vom voll­stän­di­gen Pfad der Klasse arbeiten:

Get-WmiObject -Rechnername -Class Win32_Service

Per Fern­zu­griff können Sie nun auf sys­tem­in­ter­ne Ein­stel­lun­gen des Fremd­rech­ners zugreifen. Das nach­fol­gen­de Beispiel ver­deut­licht, wie man die Methoden des Dienstes Windows Update Client abrufen kann, um her­aus­zu­fin­den, mit welchen Cmdlets sich dieser starten, stoppen und neu starten lässt:

Get-WmiObject -Rechnername -Class Win32_Service -Filter "Name='wuauserv'"

Wie Sie sehen, wird per Get-WmiObject -Rech­ner­na­me zuerst der ge­wünsch­te Rechner angepeilt und dann die Klasse Win32_Service mithilfe des Pa­ra­me­ters -Class aus­ge­wählt. Aus den vor­han­de­nen Diensten wird dann der Windows Update Client mit dem Kürzel wuauserv her­aus­ge­fil­tert. Mit dem bereits bekannten Cmdlet Get-Member und dem Parameter -Type Method erhalten Sie dann einen Überblick über sämtliche Methoden für wuauserv, die Sie zur vollen Kontrolle des Clients aus der Ferne befähigen:

Get-WmiObject -Rechnername -Class Win32_Service -Filter "Name='wuauserv'" | Get-Member -Type Method
Zum Hauptmenü