Property vs. ExpandProperty in PowerShell
Windows PowerShell ist hauptsächlich beim Anzeigen und Generieren von Objekten zentralisiert. Diese Objekte werden mit spezifischen Details unterstützt, die als Eigenschaften bezeichnet werden.
In diesem Artikel wird erläutert, was Eigenschaften sind, und sie von erweiterten Eigenschaften unterscheiden.
Property
vs. ExpandProperty
in PowerShell
Es ist möglicherweise nicht sehr klar, wenn der Unterschied zwischen Eigenschaften und erweiterten Eigenschaften erklärt wird. Nehmen wir also ein Beispiel, das uns hilft, ihn weiter zu visualisieren.
Beginnen wir damit, die Eigenschaften des Befehls Get-Process
abzurufen, indem wir den folgenden Code ausführen.
Beispielcode:
Get-Process | Format-List -Property *
Beim Ausführen des obigen Befehls generiert PowerShell eine Struktur von Sammlungen von Informationen, die einem Objekt zugeordnet sind. Die folgende Ausgabe ist einige der vielen Eigenschaften des Befehls Get-Process
.
Ausgabe:
Name : ApplicationFrameHost
Id : 13248
...
Modules : {System.Diagnostics.ProcessModule (ApplicationFrameHost.exe),
System.Diagnostics.ProcessModule (ntdll.dll), System.Diagnostics.ProcessModule
(KERNEL32.DLL), System.Diagnostics.ProcessModule (KERNELBASE.dll)...}
Lassen Sie uns eine der obigen Ausgabeeigenschaften abrufen und sie weiter untersuchen.
Beispielcode:
Get-Process | Select-Object -Property Modules
Ausgabe:
Modules
------
{System.Diagnostics.ProcessModule (ApplicationFrameHost.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.D...
Wie wir sehen können, wird eine der Eigenschaften Module
als Ausgabe angezeigt; Es ist jedoch derzeit nicht lesbar. Die Daten in der obigen Eigenschaft Modules
werden in einer ArrayList
abgelegt.
Wie machen wir diese Eigenschaft lesbarer? Wir erweitern die Eigenschaft mit dem Parameter ExpandProperty
.
Der Parameter ExpandProperty
wird verwendet, um die untergeordneten Eigenschaften der primären Eigenschaften eines PowerShell-Objekts zu untersuchen. PowerShell generiert eine mehrstufige Struktur, um die Objekte zu definieren, bei denen es sich um Eigenschaften und erweiterte Eigenschaften handelt.
Beispielcode:
Get-Process | Select-Object -ExpandProperty Modules
Ausgabe:
Size(K) ModuleName FileName
------- ---------- --------
84 ApplicationFrameHost.exe C:\WINDOWS\system32\ApplicationFrameHost.exe
<SNIP>
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn