Auch wenn es auf den ersten Blick möglicherweise nicht zu erkennen ist, arbeiten Sie in Windows PowerShell mit .NET Framework-Objekten. Mit zunehmender Erfahrung werden Sie die Vorteile der Objektverarbeitung besser verstehen und bewusst mit den Objekten arbeiten.
Technisch gesehen ist ein .NET Framework-Objekt eine Instanz einer .NET Framework-Klasse, die aus Daten und zugeordneten Operationen besteht. Sie können sich ein Objekt als Dateneinheit mit Eigenschaften (Merkmalen) und Methoden vorstellen. Methoden sind Aktionen, die für das Objekt ausgeführt werden können.
Wenn Sie beispielsweise einen Dienst in Windows PowerShell abrufen, verwenden Sie eigentlich ein Objekt, das diesen Dienst darstellt. Wenn Sie Informationen über einen Dienst anzeigen, zeigen Sie die Eigenschaften des zugehörigen Dienstobjekts an. Und wenn Sie einen Dienst starten, d. h. die Status-Eigenschaft des Dienstes auf "started" festlegen, verwenden Sie eine Methode des Dienstobjekts.
Alle Objekte desselben Typs verfügen zwar über dieselben Eigenschaften und Methoden, aber jede Instanz eines Objekts kann verschiedene Werte für die Eigenschaften aufweisen. So verfügt beispielsweise jedes Dienstobjekt über eine Name- und eine Status-Eigenschaft. Jeder Dienst kann jedoch einen eigenen Namen und Status aufweisen.
Sie können bei Bedarf leicht Informationen zu den einzelnen Objekten abrufen. Sie können ermitteln, welche Art von Objekt von einem bestimmten Cmdlet abgerufen wird, indem Sie die Ergebnisse des Befehls "get" mit einem Pipelineoperator (|) an den Befehl "Get-Member" übergeben. So werden z. B. mit dem folgenden Befehl die vom Befehl "Get-Service" abgerufenen Objekte an Get-Member gesendet.
get-service | get-member
Get-Member zeigt Informationen zum Dienstobjekt an. Dazu zählen der Typname des Objekts sowie dessen Eigenschaften und Methoden.
TypeName: System.ServiceProcess.ServiceController Name MemberType Definition ---- ---------- ---------- Name AliasProperty Name = ServiceName add_Disposed Method System.Void add_Disposed(EventHandler value) Close Method System.Void Close() Continue Method System.Void Continue() ...
Wenn Sie Informationen zur Klasse des Objekts benötigen, kopieren Sie den Typnamen, z. B. System.ServiceProcess.ServiceController, und fügen Sie diesen im Suchfeld von MSDN ein. Anschließend können Sie in den MSDN-Unterthemen Informationen zu den Eigenschaften und Methoden von Objekten finden, die von dieser Klasse abgeleitet sind. Dazu zählen beispielsweise auch die Objekte in Windows PowerShell.
Wenn Sie die Werte aller Eigenschaften eines bestimmten Objekts suchen möchten, senden Sie die Ergebnisse des Befehls "get" mit einem Pipelineoperator (|) an den Befehl Format-List oder Format-Table. Verwenden Sie den Property-Parameter der Format-Cmdlets mit dem Wert "all" (*). Geben Sie beispielsweise zum Suchen aller Eigenschaften des Zeitplandiensts Folgendes ein:
get-service schedule | format-list -property *
Nachfolgend finden Sie ein Beispiel für das Ergebnis:
Name : Schedule CanPauseAndContinue : True CanShutdown : True CanStop : True DisplayName : Task Scheduler DependentServices : {} MachineName : . ServiceName : Schedule ServicesDependedOn : {RpcSs} ServiceHandle : SafeServiceHandle Status : Running ServiceType : Win32ShareProcess Site : Container :
Für den Einstieg in Windows PowerShell müssen Sie nichts über Objekte wissen. Behalten Sie jedoch das Konzept im Hinterkopf – Sie werden schon bald in der Lage sein, die Vorteile von Objekten zu nutzen.