PowerShell ist eine leistungsstarke Sprache. Aber was macht diese Skriptsprache so leistungsstark? PowerShell-Objekte. Was sind diese magischen Objekte und wie arbeitet PowerShell mit ihnen? Bleiben Sie dran.
PowerShell ist eine objektorientierte Sprache und Shell. Dies ist ein Unterschied zu den traditionellen Shells wie cmd und Bash. Diese traditionellen Shells konzentrierten sich auf Text, auch bekannt als Zeichenketten, und obwohl sie immer noch nützlich sind, sind sie in ihren Fähigkeiten begrenzt. In PowerShell ist fast alles ein Objekt.
In diesem Artikel lernen Sie einige wichtige Konzepte kennen, wenn es um Objekte in PowerShell geht. Am Ende dieses Artikels haben Sie gelernt, wie Sie dieses Wissen auf Ihr eigenes Skripting anwenden können, mit hilfreichem Beispielcode und Visualisierungen.
Wenn Sie eher ein visueller Lerner sind, können Sie sich gerne das Begleitvideo zu diesem Artikel ansehen.
Machen Sie sich also bereit! Sie werden eine unvergessliche Erfahrung machen, die Ihnen helfen wird, das Konzept der Objekte in PowerShell zu meistern!
Voraussetzungen
In diesem Artikel lernen Sie Objekte in PowerShell anhand eines praktischen Ansatzes kennen. Wenn Sie die Codebeispiele ausprobieren möchten, sollte Windows PowerShell 5.1 oder eine beliebige Version von PowerShell 6+ funktionieren. Alle Beispiele, die Sie sehen, werden jedoch auf Windows 10 Build 1903 mit Windows PowerShell 5.1 durchgeführt.
Verständnis der Anatomie eines Objekts
Objekte sind überall in PowerShell. Sie fragen sich vielleicht: „Wie sieht ein Objekt aus?“ In diesem ersten Abschnitt erhalten Sie einen Überblick darüber, woraus ein Objekt besteht. Sobald Sie einen umfassenden Überblick darüber haben, was ein Objekt ausmacht, können Sie sich in einige Codebeispiele vertiefen!
Das Entdecken von Objektmitgliedern mit Get-Member
Objekte haben viele verschiedene Arten von Informationen, die mit ihnen verknüpft sind. In PowerShell werden diese Informationen manchmal als Mitglieder bezeichnet. Ein Objektmitglied ist ein generischer Begriff, der sich auf alle Informationen bezieht, die mit einem Objekt verbunden sind.
Um Informationen über ein Objekt (Mitglieder) zu entdecken, können Sie das Cmdlet Get-Member
verwenden. Das Cmdlet Get-Member
ist ein praktischer Befehl, der es Ihnen ermöglicht, verfügbare Eigenschaften, Methoden usw. für jedes Objekt in PowerShell zu finden.
Zum Beispiel möchten Sie vielleicht Mitglieder für ein bestimmtes Objekt anzeigen, das über das Cmdlet Get-Service
zurückgegeben wird. Sie können dies tun, indem Sie die Ausgabe des Befehls Get-Service
an das Cmdlet Get-Member
anhängen, wie unten gezeigt.
Gewöhnen Sie sich an das Cmdlet Get-Member
. Sie werden es in diesem Artikel oft verwenden.
Jeder Befehl in PowerShell, der Ausgabe erzeugt, kann an
Get-Member
weitergeleitet werden. Denken Sie nur daran, dieses Cmdlet als letztes in der Pipeline einzufügen, da es die Ausgabe durch seine eigene Ausgabe überschreibt.
Objekttypen und Klassen
Ohne ins Detail zu gehen, hat jedes Objekt in der objektorientierten Programmierung ein „Schema“. Das „Schema“ eines Objekts ist eine Art Vorlage, die den Bauplan zur Erstellung eines Objekts enthält. Dieser Bauplan wird als Typ bezeichnet.
Jedes Objekt in PowerShell hat einen bestimmten Typ. Jedes Objekt hat einen Bauplan, aus dem es erstellt wurde. Ein Objekttyp wird durch eine Klasse definiert. Betrachten Sie dieses Beispiel: 9 ist eine Zahl, „Bluegill“ ist ein Fisch, „Labrador“ ist ein Hund usw. Die Klasse kommt vor dem Typ.
Objekte sind Instanzen von Klassen mit einem bestimmten Typ.
Machen Sie sich keine Sorgen um eine tiefe Auseinandersetzung mit diesem Thema. Wenn Sie kein Softwareentwickler sind, müssen Sie sich zu diesem Zeitpunkt wahrscheinlich nicht allzu sehr mit der Semantik befassen. Es ist jedoch ein wichtiges Konzept, das Sie auf grundlegender Ebene kennen sollten.
Eigenschaften
Das wichtigste Konzept über Objekte, das Sie verstehen sollten, sind Eigenschaften. Eigenschaften sind Attribute, die ein Objekt beschreiben. Ein Objekt kann viele verschiedene Eigenschaften haben, die verschiedene Attribute darstellen.
Eine der einfachsten Möglichkeiten, um herauszufinden, welche Eigenschaften auf Objekten vorhanden sind, ist die Verwendung des Cmdlets Get-Member
. Sie können unten sehen, dass durch die Verwendung des Parameters MemberType
die Ausgabe von Get-Member
auf Objekte beschränkt wird. Sie sehen auch, dass der Objekttyp von System.ServiceProcess.ServiceController angezeigt wird.

Nehmen Sie nun das Beispiel des zuvor behandelten BITS-Dienstes und sehen Sie sich die spezifischen Werte der Eigenschaften dieses Objekts mit dem folgenden Code an. Das Cmdlet Get-Member
ermöglicht es Ihnen, die Eigenschaftsnamen, aber nicht die Werte zu finden. Mit dem Cmdlet Select-Object
von PowerShell können Sie jedoch die Eigenschaftswerte überprüfen.
Hier sehen Sie, dass StartType
eine Eigenschaft des Objekts ist. Das zurückgegebene Objekt hat viele verschiedene Mitglieder, aber durch die Verwendung des Cmdlets Select-Object
wird die Ausgabe auf diese Eigenschaft begrenzt.

Eigenschaften sind bei weitem die häufigste Komponente eines Objekts, mit dem Sie in PowerShell arbeiten werden.
Aliase
Einige Eigenschaften haben einen MemberType
-Wert von Alias
. Aliase sind Pseudonyme für Eigenschaftsnamen. Sie können manchmal Eigenschaften einen intuitiveren Namen geben.
Sie können ein Beispiel für ein Objekt mit Aliassen anhand des Cmdlets Get-Service
erneut sehen, wie unten dargestellt. Die Eigenschaft Name
wird in ServiceName
und RequiredServices
in die Eigenschaft ServicesDependedOn
umbenannt.

Wenn eine Eigenschaft einen Alias hat, können Sie den Wert dieser Eigenschaft unter Verwendung des Aliasnamens anstelle des tatsächlichen Eigenschaftsnamens referenzieren. In diesem Beispiel ist eine beschreibende Bezeichnung wie Name
und RequiredServices
intuitiver und einfacher einzugeben als ServiceName
und ServicesDependedOn
.
Ein Beispiel für die Verwendung dieser Aliasse finden Sie unten.
Sie sollten die folgende Ausgabe sehen. Beachten Sie erneut, dass der Code kurz, sauber und prägnant ist. Die Informationen sind unabhängig davon, ob das Alias verwendet wird oder nicht, gleich:

Methoden
Eigenschaften sind nur ein Teil, der ein Objekt erstellt; Methoden sind ebenfalls ein wichtiger Begriff, den Sie verstehen sollten. Methoden sind die Aktionen, die auf einem Objekt ausgeführt werden können. Wie bei Eigenschaften können Sie Methoden in einem Objekt mithilfe des Get-Member
-Cmdlets entdecken.
Um die Ausgabe von Get-Member
auf nur Methoden zu beschränken, setzen Sie den Wert des Parameters MemberType
auf Method
, wie unten gezeigt.

Als Anfänger verwenden Sie Methoden viel seltener als Eigenschaften.
Andere MemberTypes
Eigenschaften, Methoden und Aliase sind nicht die einzigen Arten von Elementen, die ein Objekt haben kann. Allerdings werden sie mit Abstand die häufigsten Arten von Elementen sein, mit denen Sie arbeiten werden.
Vollständigkeitshalber finden Sie unten einige andere Arten von Elementen, auf die Sie stoßen könnten.
- Skript-Eigenschaft – Diese werden verwendet, um Eigenschaftswerte zu berechnen.
- Hinweis-Eigenschaft – Diese werden für statische Eigenschaftsnamen verwendet.
- Eigenschaftensätze – Diese sind wie Aliasse, die genau das enthalten, was der Name vermuten lässt; Sets von Eigenschaften. Zum Beispiel haben Sie eine benutzerdefinierte Eigenschaft namens
Specs
für Ihre FunktionGet-CompInfo
erstellt.Specs
ist tatsächlich eine Teilmenge der Eigenschaften Cpu, Mem, Hdd, IP. Der Hauptzweck von Eigenschaftensätzen besteht darin, einen einzelnen Eigenschaftsnamen bereitzustellen, um eine Gruppe von Eigenschaften zu verketten.
Es ist auch wichtig, das Konzept der Objektereignisse zu erwähnen. Ereignisse liegen außerhalb des Umfangs dieses Artikels.
Arbeiten mit Objekten in PowerShell
Jetzt, da Sie ein grundlegendes Verständnis dafür haben, woraus ein Objekt besteht, wollen wir anfangen, unsere Hände schmutzig zu machen und etwas Code zu schreiben.
Viele PowerShell-Befehle erzeugen Ausgaben, aber manchmal müssen Sie nicht alle diese Ausgaben sehen. Sie müssen diese Ausgabe irgendwie beschränken oder manipulieren. Glücklicherweise verfügt PowerShell über einige verschiedene Befehle, mit denen Sie genau das tun können.
Fangen wir mit einem Beispiel an, in dem alle Dienste auf dem lokalen Computer mit dem Befehl Get-Service
aufgelistet werden, wie unten gezeigt. Sie können an der Ausgabe sehen, dass viele verschiedene Dienste (Objekte) zurückgegeben werden.

Steuerung der zurückgegebenen Objekteigenschaften
In Anlehnung an das Beispiel Get-Service
möchten Sie möglicherweise nicht jede Eigenschaft sehen. Stattdessen müssen Sie nur die Eigenschaften Status
und DisplayName
sehen. Um die zurückgegebenen Eigenschaften zu beschränken, verwenden Sie den Befehl Select-Object
.
Das Select-Object
-Cmdlet „filtert“ verschiedene Eigenschaften, die an die PowerShell-Pipeline zurückgegeben werden. Um Objekteigenschaften zu „filtern“, können Sie den Parameter Property
verwenden und eine mit Kommas getrennte Menge von einem oder mehreren Eigenschaften angeben, die zurückgegeben werden sollen.
Im folgenden Beispiel sehen Sie, wie nur die Eigenschaften Status
und DisplayName
zurückgegeben werden.

Sortieren von Objekten
Vielleicht erstellen Sie einen Bericht, um Dienste und ihren Status anzuzeigen. Um die Informationen leicht verdaulich zu machen, möchten Sie die zurückgegebenen Objekte nach dem Wert der Eigenschaft Status
sortieren. Dafür können Sie das Sort-Object
-Cmdlet verwenden.
Das Sort-Object
-Cmdlet ermöglicht es Ihnen, alle zurückgegebenen Objekte zu sammeln und sie in der von Ihnen definierten Reihenfolge auszugeben.
Zum Beispiel können Sie mit dem Property
-Parameter von Sort-Object
eine oder mehrere Eigenschaften auf den eingehenden Objekten von Get-Service
angeben, nach denen sortiert werden soll. PowerShell wird jedes Objekt an das Sort-Object
-Cmdlet übergeben und sie dann nach dem Wert der Eigenschaft sortiert zurückgeben.
Im folgenden Beispiel sehen Sie, wie alle Dienstobjekte nach ihrem Status
zurückgegeben und in absteigender Reihenfolge sortiert werden, indem der Descending
-Schalterparameter von Sort-Object
verwendet wird.

Der Pipe-Operator [
|
] in PowerShell ist eine von mehreren Techniken zur Zeilenfortsetzung, die Sie verwenden sollten, wenn es notwendig ist. Verwenden Sie ihn anstelle von Backticks.
Filtern von Objekten
Vielleicht entscheiden Sie sich dafür, nicht alle Dienste auf einer Maschine zu sehen. Stattdessen müssen Sie die Ausgabe nach spezifischen Kriterien begrenzen. Eine Möglichkeit, die Anzahl der zurückgegebenen Objekte zu filtern, besteht darin, das Where-Object
-Cmdlet zu verwenden.
Während das Select-Object
-Cmdlet die Ausgabe bestimmter Eigenschaften begrenzt, begrenzt das Where-Object
-Cmdlet die Ausgabe ganzer Objekte.
Das Where-Object
-Cmdlet funktioniert ähnlich wie die SQL WHERE-Klausel. Es fungiert als Filter der ursprünglichen Quelle, um nur bestimmte Objekte zurückzugeben, die bestimmte Kriterien erfüllen.
Vielleicht haben Sie beschlossen, dass Sie nur Objekte zurückgeben möchten, deren Status
-Eigenschaft den Wert Running
und nur solche mit einem DisplayName
-Eigenschaftswert, der mit A
beginnt, hat.
Im nächsten Code-Snippet sehen Sie, dass eine Verweis auf Where-Object
zwischen Select-Object
und Sort-Object
in der Pipeline-Reihenfolge eingefügt wurde. Durch Verwendung eines Skriptblockwerts mit einer erforderlichen Bedingung, die für jedes Objekt über den FilterScript
-Parameter erfüllt werden muss, können Sie beliebige Abfragen erstellen, die Sie möchten.
Wenn Sie beeinflussen möchten, wie die Ausgabe in der Konsole zurückgegeben wird, schauen Sie sich das
Format-Table
-Cmdlet an.

Zählen und Durchschnittsbildung von zurückgegebenen Objekten
Der Befehl Get-Service
gibt viele verschiedene Objekte zurück. Mit dem Where-Object
cmdlet haben Sie einen Teil dieser Objekte herausgefiltert, aber wie viele? Hier kommt das Measure-Object
cmdlet ins Spiel.
Das Measure-Object
cmdlet ist ein PowerShell-Befehl, der unter anderem mathematische Operationen ausführen kann. Es kann auch zählen, wie viele Objekte es über die Pipeline erhält.
Vielleicht möchten Sie wissen, wie viele Objekte insgesamt zurückgegeben werden, wenn Ihre kombinierten Befehle ausgeführt werden. Sie können die endgültige Ausgabe an das Measure-Object
cmdlet übergeben, um die Gesamtzahl der zurückgegebenen Objekte zu ermitteln, wie im folgenden Beispiel gezeigt.
Nachdem die Befehle fertig verarbeitet sind, sehen Sie in diesem Fall, dass anfangs 21 Objekte zurückgegeben wurden, die mit dem Get-Service
cmdlet erstellt wurden.

Vielleicht interessieren Sie sich nur für die Gesamtzahl der zurückgegebenen Objekte. Da der Measure-Object
Befehl die Gesamtzahl der gefundenen Objekte über eine Count
-Eigenschaft zurückgibt, können Sie erneut das Select-Object
cmdlet verwenden. Diesmal geben Sie nur die Count
-Eigenschaft zurück.

Aktionen auf Objekten mit Schleifen ausführen
Während jedes Objekt durch die Pipeline verarbeitet wird, können Sie mit einer Schleife Aktionen auf jedes Objekt ausführen. PowerShell bietet verschiedene Arten von Schleifen, aber wir bleiben bei Beispielen mit Pipelines und schauen uns das ForEach-Object
cmdlet genauer an.
Mit dem ForEach-Object
cmdlet können Sie Aktionen auf jedes in es fließende Objekt ausführen. Dieses Verhalten lässt sich am besten anhand eines Beispiels erklären.
Unter Verwendung eines Get-Service
-Beispiels möchten Sie möglicherweise alle Dienste auf einem Windows-Computer finden, deren Name mit „Windows“ beginnt und die ausgeführt werden. Mit Hilfe des Where-Object
-Cmdlets können Sie die Bedingungen erstellen, wie Sie es zuvor getan haben.
Aber anstatt ganze Objekte oder sogar einige Eigenschaften zurückzugeben, möchten Sie für jedes Objekt den String <ServiceName> wird ausgeführt zurückgeben, indem Sie den Code **Write-Host -ForegroundColor 'Yellow' <ServiceName> "wird ausgeführt"
verwenden.
Sie manipulieren jetzt die Ausgabe und erstellen Ihren eigenen String. Die einzige Möglichkeit dies zu tun, besteht darin, das ForEach-Object
-Cmdlet wie folgt zu verwenden. Unten sehen Sie, dass für jedes über das Where-Object
zurückgegebene Objekt PowerShell den Code Write-Host -ForegroundColor 'Yellow' $_.DisplayName "wird ausgeführt"
ausführt.

Das ForEach-Object
-Cmdlet ist auf vielfältige Weise nützlich. Zum Beispiel könnten Sie zusätzliche Logik einbauen, um durch jedes gefundene Dienstobjekt zu iterieren und basierend auf einem Eigenschaftswert die Farbe und den Wortlaut des Ausgabestrings zu ändern oder sogar eine zusätzliche Aktion wie das Starten eines gestoppten Dienstes durchzuführen.
Stellen Sie sich die Möglichkeiten vor, die Ihnen das bietet! Mit ein wenig Überlegung und Planung könnten Sie ein Skript erstellen, das einen Befehl nimmt und mühelos auf viele Objekte ausführt.
Vergleich von Objekten
Manchmal müssen Sie sich zwei Objekte ansehen und Eigenschaftswerte vergleichen.
Vielleicht haben Sie zwei Systeme in Ihrem Netzwerk, die nahezu identisch sind. Allerdings haben Sie ein Konfigurationsproblem mit einem Dienst auf einem der beiden Systeme festgestellt.
Sie kommen zu dem Schluss, dass Sie aufgrund der unterschiedlichen Netzwerkbereiche Remote-Befehle verwenden müssen, um die Informationen in einer PowerShell-Sitzung zu sammeln. Sie öffnen Ihren bevorzugten Editor und erstellen ein Skript. Dieses Skript verbindet sich, wie unten gezeigt, mit zwei verschiedenen Servern und listet alle Prozesse auf beiden auf.
Sie haben nun alle Prozesse auf jedem Computer in den Variablen $ProcA
und $ProcB
erfasst. Jetzt müssen Sie sie vergleichen. Sie könnten manuell durch jede Prozessliste gehen oder Sie könnten es sich einfacher machen und ein Cmdlet namens Compare-Object
verwenden.
Compare-Object
ermöglicht es Ihnen, die Eigenschaftswerte zweier unterschiedlicher Objekte zu vergleichen. Dieses Cmdlet liest jede Eigenschaft in jedem Objekt, betrachtet deren Werte und gibt standardmäßig das, was unterschiedlich ist, sowie das, was gleich ist, zurück.
Um Compare-Object
zu verwenden, geben Sie einen ReferenceObject
– und einen DifferenceObject
-Parameter an und geben Sie jedes Objekt als Parameterwert an, wie unten gezeigt.
Standardmäßig gibt Compare-Object
nur Unterschiede in den Objekten zurück, die durch die Eigenschaft SideIndicator
angezeigt werden. Die Symbole oder Seitenindikatoren, die verwendet werden, sind >
, <
und =
, um Übereinstimmungen der verglichenen Objekte anzuzeigen.

Sie können den Schalterparameter
IncludeEqual
mitCompare-Object
verwenden, um Objekteigenschaften zurückzugeben, die gleich sind. In diesem Fall sehen Sie==
als Seitenindikator. Ebenso können SieExcludeDifferent
verwenden, um Unterschiede auszuschließen.
Das Compare-Object
-Cmdlet ist ein sehr nützliches Cmdlet. Wenn Sie mehr darüber erfahren möchten, besuchen Sie die Online-Dokumentation.
Arbeiten mit benutzerdefinierten Objekten
Jetzt, da Sie ein gutes Verständnis dafür haben, was Objekte sind und wie Sie mit ihnen arbeiten können, ist es an der Zeit, Ihre eigenen Objekte zu erstellen!
Erstellen benutzerdefinierter Objekte aus Hashtables
Eine Möglichkeit, Ihre eigenen Objekte zu erstellen, besteht darin, Hashtables zu verwenden. Hashtables sind eine Sammlung von Schlüssel/Wert-Paaren, genau das, was Sie für die Erstellung von Eigenschaften für ein Objekt benötigen.
Fangen wir damit an, ein benutzerdefiniertes PowerShell-Objekt mit einigen Schlüssel/Wert-Paaren mithilfe einer Hashtable zu erstellen. Im folgenden Beispiel erstellen Sie eine Hashtable. Diese Hashtable repräsentiert ein einzelnes Objekt und dessen Eigenschaften. Sobald die Hashtable $CarHashtable
definiert wurde, verwenden Sie den PsCustomObject
Typbeschleuniger.
Der pscustomobject-Typbeschleuniger ist eine schnelle Möglichkeit, eine Instanz der pscustomobject-Klasse zu erstellen. Dieses Verhalten wird als Casting bezeichnet.
Am Ende des folgenden Codeausschnitts haben Sie ein Objekt ($CarObject
) vom Typ pscustomobject mit fünf zugewiesenen Eigenschaften.
Alternativ können Sie auch das New-Object
-Cmdlet verwenden. Mit derselben Hashtable könnten Sie anstelle des pscustomobject-Typbeschleunigers den langen Weg mit New-Object
gehen. Ein Beispiel dafür ist unten aufgeführt.
Wenn $CarObject
erstellt wurde, können Sie jetzt sehen, dass Sie auf jede der Eigenschaften genauso verweisen können, als ob sie von einem integrierten PowerShell-Cmdlet wie Get-Service
stammen würde.

Hinzufügen und Entfernen von Eigenschaften
Nicht nur das Erstellen von benutzerdefinierten Objekten ist möglich, sondern Sie können sie auch erweitern. Erinnern Sie sich an die Verwendung des Get-Member
-Cmdlets? Get-Member
hat ein verwandtes Cmdlet namens Add-Member
. Das Add-Member
-Cmdlet enumeriert nicht Mitglieder, sondern fugt sie hinzu.
Verwenden Sie das zuvor erstellte benutzerdefinierte Objekt als Beispiel. Vielleicht möchten Sie diesem Objekt eine Modelljahreseigenschaft hinzufügen. Sie können dies tun, indem Sie ein Objekt an Add-Member
übergeben und angeben:
- Die Art des Mitglieds (in diesem Fall eine einfache
NoteProperty
) - Der Name der Eigenschaft (
Jahr
) - Der Wert der Eigenschaft (
Wert
)
Sie können unten ein Beispiel dafür sehen.
Sie können unten sehen, dass es genauso aussieht wie jede andere Eigenschaft.

Sie können ähnliche Techniken verwenden, um viele verschiedene Arten von Mitgliedern hinzuzufügen. Wenn Sie selbst mehr erkunden möchten, werfen Sie einen Blick auf die Add-Member
Dokumentation.
Sie können ein Mitglied genauso einfach aus einem Objekt entfernen. Obwohl es kein Remove-Member
-Cmdlet gibt, können Sie es dennoch erreichen, indem Sie die Remove()
-Methode auf dem Objekt aufrufen, wie unten gezeigt. Über Methoden werden Sie im nächsten Abschnitt erfahren.
Kurze Einführung in Methoden
In diesem Artikel haben Sie hauptsächlich mit Eigenschaften gearbeitet. Sie haben Eigenschaftswerte gelesen, Ihre eigenen Eigenschaften erstellt und hinzugefügt und entfernt. Aber Sie haben die Umgebung nicht wirklich verändert. Sie haben nichts auf dem Server geändert. Lassen Sie uns mit Methoden etwas unternehmen.
Methoden führen eine Art von Aktion aus. Objekte speichern Informationen, während Methoden Aktionen ausführen.
Zum Beispiel kennen Sie möglicherweise den Befehl Stop-Service
. Dieser Befehl stoppt einen Windows-Dienst. Dazu können Sie ein Objekt direkt von Get-Service
an Stop-Service
senden, um dies zu erreichen.
Sie können unten ein Beispiel für das Stoppen des BITS-Dienstes sehen. Dieses Beispiel stoppt den BITS-Dienst und überprüft dann den Status, um sicherzustellen, dass er gestoppt ist. Sie haben zwei Aktionen mit Cmdlets ausgeführt: den Dienst stoppen und den Status überprüfen.
Anstatt zweimal den Befehl Get-Service
auszuführen und einen separaten Befehl Stop-Service
auszuführen, können Sie stattdessen Methoden nutzen, die direkt in die Dienstobjekte integriert sind. Viele Objekte verfügen über Methoden. In diesem Fall Stop-Service
und diese zweite Referenz von Get-Service
ist nicht einmal erforderlich.

Indem Sie Methoden auf dem Dienstobjekt selbst aufrufen, können Sie den Dienst stoppen und den aktualisierten Status mit einem einzelnen Objekt abrufen. Unten sehen Sie dies in Aktion. Beachten Sie, dass Sie mit den Methoden Stop()
und Start()
den Dienst genauso manipulieren können wie die Befehle.
Um sicherzustellen, dass der Wert der Eigenschaft Status
nach einer Statusänderung des Dienstes aktuell ist, können Sie die Methode Refresh()
aufrufen, die wie ein weiterer Aufruf des Befehls Get-Service
funktioniert.
Sie sollten die folgende Ausgabe sehen:

Für weitere Informationen zu Methoden, schauen Sie sich das Thema „about_Methods“ in der Hilfe an.
Zusammenfassung
Es gibt viele Dinge, die Sie mit Objekten in PowerShell tun können. Dieser Artikel war nur ein Einstieg, um Ihnen den Einstieg in das Erlernen von ihnen zu erleichtern. In diesem Artikel haben Sie einige grundlegende Informationen darüber gelernt, was Objekte sind, wie Sie Maßnahmen ergreifen, sie manipulieren und erstellen können. Sie haben einige verschiedene Szenarien gesehen, in denen Sie diese Aufgaben mit Codebeispielen durchführen können. Bleiben Sie ruhig und lernen Sie PowerShell. Vielen Dank fürs Lesen!