Objekte ermitteln
Wenn ein Cmdlet ausgeführt wird, wird ein Objekt zurückgegeben. Wenn Sie ein Cmdlet aufrufen, wurde die Antwort, die Ihnen angezeigt wird, formatiert und stellt nicht zwangsläufig alle für die Antwort verfügbaren Informationen dar. Um mehr darüber zu erfahren, was zurückgegeben wird und wie Sie ändern können, was zurückgegeben wird, können Sie den Befehl Get-Member
verwenden.
Ermitteln von Objekten mithilfe von Get-Member
Das Cmdlet Get-Member
wird über eine Weiterreichung mit dem von Ihnen ausgeführten Befehl verknüpft, damit Sie die Ausgabe filtern können. Ein typischer Befehlszeilenaufruf von Get-Member
könnte wie im folgenden Beispiel aussehen:
Get-Process -Name 'name-of-process' | Get-Member
Dieser Befehl erzeugt zunächst ein Objektergebnis durch Aufrufen von Get-Process
. Das Ergebnis wird mithilfe eines senkrechten Strichs (|
) als Eingabe an Get-Member
übergeben. Als Rückgabe erhalten Sie ein Tabellenergebnis, das die Spalten Name
, MemberType
und Definition
enthält. Außerdem wird der Typ des zurückgegebenen Objekts zurückgegeben.
Tipp
Um eine Liste der auf Ihrem Computer ausgeführten Prozesse zu erhalten, führen Sie Get-Process
aus.
Typbasiertes Suchen
Die erste Antwortzeile des Befehls Get-Member
ist der Typ des zurückgegebenen Objekts. Wenn Sie den Typ kennen, können Sie nach anderen Cmdlets suchen, die denselben Typ verwenden. Machen Sie sich mit den verwandten Befehlen vertraut, um sich schnell ein solides Wissen in Ihrer Arbeitsdomäne anzueignen.
Angenommen, Sie haben den PowerShell-Befehl aufgerufen, der alle Member eines bestimmten Prozesses auflistet. Die ersten Zeilen des Ergebnisses sehen etwa wie die folgende Ausgabe aus:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Die erste Zeile gibt an, dass der Typ System.Diagnostics.Process
lautet. Verwenden Sie diesen Typ als Suchargument, um nach anderen Cmdlets zu suchen, die diesen Typ verwenden. Im Folgenden finden Sie einen Beispielbefehl:
Get-Command -ParameterType Process
Das Ergebnis ist eine Liste von Cmdlets, die diesen Typ verwenden. Mit Get-Member
können Sie nach und nach Ihre Kenntnisse über PowerShell erweitern und indem Sie lernen, die Ergebnisse interpretieren.
Tipp
PowerShell ist darauf ausgelegt, nach und nach erlernt zu werden. Eine gute Möglichkeit, sich mit verwandten Cmdlets vertraut zu machen, ist, anhand des zurückgegebenen Typs und typbasiert nach Cmdlets zu suchen.
Filtern eines Get-Member-Ergebnisses mithilfe von Select-Object
Wenn Sie Get-Member
ausführen, ist das Ergebnis ausführlich. Dies bedeutet, dass viele Zeilen zurückgegeben werden. Das Objekt verfügt möglicherweise über Eigenschaften, so wie Ereignisse und Methoden auch. Damit die Antwort weniger ausführlich wird, können Sie nach bestimmten Spalten filtern und entscheiden, welche Spalten angezeigt werden sollen. Beachten Sie, dass die zurückgegebene Antwort bereits eine Teilmenge aller Antwortspalten darstellt.
Sehen Sie sich eine Antwort von Get-Member
an, die mehrere Spalten enthält. Durch die Einführung des Cmdlets Select-Object
können Sie auswählen, welche Spalten in der Antwort angezeigt werden. Der Befehl erwartet entweder eine durch Trennzeichen getrennte Liste von Spaltennamen oder ein Platzhalterzeichen, wie z. B. ein Sternchen (*
), das für alle Spalten steht.
Wenn Sie den Befehl Select-Object
im Zusammenhang mit Select-Object Name, MemberType
verwenden, müssen Sie nur die gewünschten Spalten angeben. In diesem Fall sind dies die Spalten Name
und MemberType
. Die Befehlszeile sieht folgendermaßen aus:
Get-Process -Name 'name-of-process' | Get-Member | Select-Object Name, MemberType
Dieses Filtermuster gibt eine Ausgabe zurück, die weniger Spalten enthält. Im Folgenden sehen Sie ein Beispielergebnis:
Name MemberType
---- ----------
Handles AliasProperty
Sie können die Antwort auch nach Zeilen filtern. Mithilfe des Flags -MemberType Method
lässt sich beispielsweise angeben, dass Sie an den Zeilen interessiert sind, in denen der Membertyp eine Methode ist. Unter Umständen sollten Sie nur bestimmte Zeilen anzeigen, z. B. wenn Sie eine bestimmte Methode suchen und ausführen möchten.
Tipp
In der Regel ist es besser, dedizierte Cmdlets zu verwenden, als Methoden für ein Objekt auszuführen.