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.




Inhaltsverzeichnis