PowerShell의 Property 대 ExpandProperty
Windows PowerShell은 주로 개체를 표시하고 생성하는 중앙 집중식입니다. 이러한 개체는 속성이라는 특정 세부 정보로 지원됩니다.
이 문서에서는 속성이 무엇인지 설명하고 확장 속성과 구별합니다.
PowerShell의 Property
대 ExpandProperty
속성과 확장 속성의 차이점을 설명할 때 명확하지 않을 수 있으므로 더 시각화하는 데 도움이 되는 예를 들어 보겠습니다.
아래 코드를 실행하여 Get-Process
명령의 속성을 가져오는 것부터 시작하겠습니다.
예제 코드:
Get-Process | Format-List -Property *
위의 명령을 실행하면 PowerShell은 개체와 관련된 정보 모음 구조를 생성합니다. 아래 출력은 Get-Process
명령의 여러 속성 중 일부입니다.
출력:
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)...}
위의 출력 속성 중 하나를 가져와서 자세히 살펴보겠습니다.
예제 코드:
Get-Process | Select-Object -Property Modules
출력:
Modules
------
{System.Diagnostics.ProcessModule (ApplicationFrameHost.exe), System.Diagnostics.ProcessModule (ntdll.dll), System.D...
보시다시피 Modules
속성 중 하나가 출력으로 표시됩니다. 그러나 현재 읽을 수 없습니다. 위 Modules
속성의 데이터는 ArrayList
에 배치됩니다.
그렇다면 이 속성을 더 읽기 쉽게 만들려면 어떻게 해야 할까요? ExpandProperty
매개변수를 사용하여 속성을 확장합니다.
ExpandProperty
매개변수는 PowerShell 개체의 기본 속성의 하위 속성을 조사하는 데 사용됩니다. PowerShell은 속성 및 확장 속성인 개체를 정의하기 위해 다단계 구조를 생성합니다.
예제 코드:
Get-Process | Select-Object -ExpandProperty Modules
출력:
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