Get-Member
개체의 속성 및 메서드를 가져옵니다.
구문
Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]
설명
Get-Member cmdlet은 개체의 "멤버"(속성 및 메서드)를 가져옵니다.
개체를 지정하려면 InputObject 매개 변수를 사용하거나 개체를 Get-Member로 파이프합니다. 정적 멤버(인스턴스가 아닌 클래스의 멤버)에 대한 정보를 검색하려면 Static 매개 변수를 사용합니다. NoteProperties와 같은 특정 유형의 멤버만 가져오려면 MemberType 매개 변수를 사용합니다.
매개 변수
-Force
내장 멤버(PSBase, PSAdapted, PSObject, PSTypeNames)와 컴파일러에서 생성된 get_ 및 set_ 메서드를 표시에 추가합니다. 기본적으로 Get-Member는 "Base" 및 "Adapted"를 제외한 모든 보기에서 이 속성을 가져오지만 표시하지는 않습니다.
다음 목록에서는 Force 매개 변수를 사용할 때 추가되는 속성에 대해 설명합니다.
-- PSBase: 확장 또는 조정되지 않은 .NET Framework 개체의 원래 속성으로, 개체 클래스에 대해 정의되며 MSDN에 나열됩니다.
-- PSAdapted: Windows PowerShell 확장 유형 시스템에 정의된 속성 및 메서드입니다.
-- PSExtended: Add-Member cmdlet을 사용하여 추가되었거나 Types.ps1xml 파일에 추가된 속성 및 메서드입니다.
-- PSObject: 기본 개체를 Windows PowerShell PsObject 개체로 변환하는 어댑터입니다.
-- PSTypeNames: 특수성 순으로 개체를 설명하는 개체 유형 목록입니다. 개체 형식을 지정할 때 Windows PowerShell은 Windows PowerShell 설치 디렉터리($pshome)의 Format.ps1xml 파일에서 유형을 검색하며 가장 먼저 발견되는 유형의 형식 지정 정의를 사용합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-InputObject <psobject>
해당 멤버를 검색할 개체를 지정합니다.
InputObject 매개 변수를 사용하는 것은 개체를 Get-Member로 파이프하는 것과는 다릅니다. 차이점은 다음과 같습니다.
-- 개체 컬렉션을 Get-Member로 파이프하면 Get-Member는 정수 배열의 정수 속성과 같은 컬렉션의 개별 개체 멤버를 가져옵니다.
-- InputObject를 사용하여 개체 컬렉션을 전송하면 Get-Member는 정수 배열의 배열 속성과 같은 컬렉션 멤버를 가져옵니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue) |
와일드카드 문자 적용 여부 |
false |
-MemberType <PSMemberTypes>
지정된 멤버 유형의 멤버만 가져옵니다. 기본값은 All입니다.
이 매개 변수에 사용할 수 있는 값은 다음과 같습니다.
-- AliasProperty: 기존 속성의 새 이름을 정의하는 속성입니다.
-- CodeMethod: .NET Framework 클래스의 정적 메서드를 참조하는 메서드입니다.
-- CodeProperty: .NET Framework 클래스의 정적 속성을 참조하는 속성입니다.
-- Event: 개체가 작업을 표시하거나 상태 변경을 표시하기 위해 메시지를 보내는 것을 나타냅니다.
-- MemberSet: PSBase, PSObject, PSTypeNames와 같은 미리 정의된 속성 및 메서드 컬렉션입니다.
-- Method: 기본 .NET Framework 개체의 메서드입니다.
-- NoteProperty: 정적 값이 포함된 속성입니다.
-- ParameterizedProperty: 매개 변수 및 매개 변수 값을 사용하는 속성입니다.
-- Property: 기본 .NET Framework 개체의 속성입니다.
-- PropertySet: 미리 정의된 개체 속성 컬렉션입니다.
-- ScriptMethod: 해당 값이 스크립트의 출력인 메서드입니다.
-- ScriptProperty: 해당 값이 스크립트의 출력인 속성입니다.
-- All: 모든 멤버 유형을 가져옵니다.
-- Methods: 개체의 모든 메서드 유형(예: Method, CodeMethod, ScriptMethod)을 가져옵니다.
-- Properties: 개체의 모든 속성 유형(예: Property, CodeProperty, AliasProperty, ScriptProperty)을 가져옵니다.
모든 개체가 모든 멤버 유형을 포함하는 것은 아닙니다. 개체에 포함되지 않은 멤버 유형을 지정하면 Windows PowerShell에서 null 값이 반환됩니다.
모든 확장된 멤버 등 관련 멤버 유형을 가져오려면 View 매개 변수를 사용합니다. MemberType 매개 변수를 Static 또는 View 매개 변수와 함께 사용하는 경우 Get-Member는 두 집합에 모두 속하는 멤버를 가져옵니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Name <string[]>
개체의 속성 또는 메서드 이름을 하나 이상 지정합니다. Get-Member는 지정된 속성 및 메서드만 가져옵니다.
Name 매개 변수를 MemberType, View 또는 Static 매개 변수와 함께 사용하는 경우 Get-Member는 모든 매개 변수의 조건을 충족하는 멤버만 가져옵니다.
정적 멤버를 이름별로 가져오려면 Static 매개 변수를 Name 매개 변수와 함께 사용합니다.
필수 여부 |
false |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-Static
개체의 정적 속성 및 메서드만 가져옵니다.
정적 속성 및 메서드는 클래스의 특정 인스턴스가 아닌 개체의 클래스에 정의됩니다.
Static 매개 변수를 View 매개 변수와 함께 사용하는 경우 View 매개 변수는 무시됩니다. Static 매개 변수를 MemberType 매개 변수와 함께 사용하는 경우에는 Get-Member가 두 집합에 모두 속하는 멤버만 가져옵니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-View <PSMemberViewTypes>
특정 멤버 유형(속성 및 메서드)만 가져옵니다. 하나 이상의 값을 지정합니다. 기본값은 "Adapted, Extended"입니다.
유효한 값은 다음과 같습니다.
-- Base: 확장 또는 조정되지 않은 .NET Framework 개체의 원래 속성 및 메서드만 가져옵니다.
-- Adapted: Windows PowerShell 확장 유형 시스템에 정의된 속성 및 메서드만 가져옵니다.
-- Extended: Add-Member cmdlet을 사용하여 추가되었거나 Types.ps1xml 파일에 추가된 속성 및 메서드만 가져옵니다.
-- All: Base, Adapted 및 Extended 보기의 멤버를 가져옵니다.
View 매개 변수는 검색되는 멤버의 표시 여부뿐만 아니라 멤버 자체도 결정합니다.
스크립트 속성과 같은 특정 멤버 유형을 가져오려면 MemberType 매개 변수를 사용합니다. MemberType 매개 변수와 View 매개 변수를 같은 명령에 사용하는 경우 Get-Member는 두 집합에 모두 속하는 멤버를 가져옵니다. Static 매개 변수와 View 매개 변수를 같은 명령에 사용하는 경우 View 매개 변수는 무시됩니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.Management.Automation.PSObject 임의의 개체를 Get-Member로 파이프할 수 있습니다. |
출력 |
Microsoft.PowerShell.Commands.MemberDefinition Get-Member는 가져오는 각 속성 또는 메서드에 대한 개체를 반환합니다. |
참고
InputObject 매개 변수를 사용하거나 쉼표를 앞에 놓고 개체를 Get-Member로 파이프하여 컬렉션 개체 정보를 검색할 수 있습니다.
예 1
C:\PS>get-service | get-member
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
Close Method System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose Method System.Void Dispose()
Equals Method System.Boolean Equals(Object obj)
ExecuteCommand Method System.Void ExecuteCommand(Int32 command)
GetHashCode Method System.Int32 GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method System.Type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
Pause Method System.Void Pause()
Refresh Method System.Void Refresh()
Start Method System.Void Start(), System.Void Start(String[] args)
Stop Method System.Void Stop()
ToString Method System.String ToString()
WaitForStatus Method System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue Property System.Boolean CanPauseAndContinue {get;}
CanShutdown Property System.Boolean CanShutdown {get;}
CanStop Property System.Boolean CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName Property System.String DisplayName {get;set;}
MachineName Property System.String MachineName {get;set;}
ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName Property System.String ServiceName {get;set;}
ServicesDependedOn Property System.ServiceProcess.ServiceController[] ServicesDependedOn {get;}
ServiceType Property System.ServiceProcess.ServiceType ServiceType {get;}
Site Property System.ComponentModel.ISite Site {get;set;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
설명
-----------
이 명령은 Get-Service cmdlet에서 생성된 프로세스 개체(System.ServiceProcess.ServiceController)의 속성 및 메서드를 표시합니다.
이 명령은 파이프라인 연산자(|)를 사용하여 Get-Service 명령의 출력을 Get-Member로 보냅니다.
명령의 Get-Member 부분에는 매개 변수가 없으므로 모든 기본값이 사용됩니다. 따라서 멤버 유형은 모두 가져오지만 정적 멤버는 가져오지 않으며 내장 멤버를 표시하지도 않습니다.
예 2
C:\PS>get-service | get-member -force
C:\PS> (get-service -schedule).psbase
설명
-----------
이 예제에서는 PSBase 및 PSObject와 같은 내장 멤버와 get_ 및 set_ 메서드를 비롯하여 Get-Service cmdlet에서 검색된 서비스 개체(System.ServiceProcess.ServiceController)의 모든 멤버(속성 및 메서드)를 가져옵니다.
첫 번째 명령은 Get-Service cmdlet을 사용하여 시스템의 서비스를 나타내는 개체를 가져오며, 파이프라인 연산자(|)를 사용하여 서비스 개체를 Get-Member cmdlet으로 전달합니다.
Get-Member 명령은 Force 매개 변수를 사용하여 개체의 내장 멤버 및 컴파일러에서 생성된 멤버를 표시에 추가합니다. Get-Member는 이러한 멤버를 가져오지만 기본적으로 숨깁니다.
이러한 속성 및 메서드는 조정된 개체 메서드를 사용하는 것과 같은 방식으로 사용할 수 있습니다. 두 번째 명령은 Schedule 서비스의 PSBase 속성 값을 표시하는 방법을 보여 줍니다.
예 3
C:\PS>get-service | get-member -view extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
설명
-----------
이 명령은 Types.ps1xml 파일 또는 Add-Member cmdlet을 사용하여 확장된 서비스 개체의 메서드 및 속성을 가져옵니다.
Get-Member 명령은 View 매개 변수를 사용하여 서비스 개체의 확장된 멤버만 가져옵니다. 이 경우 확장된 멤버는 ServiceName 속성의 별칭 속성인 Name 속성입니다.
예 4
C:\PS>get-eventlog -log system | gm -membertype scriptproperty
TypeName: System.Diagnostics.EventLogEntry
Name MemberType Definition
---- ---------- ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}
설명
-----------
이 명령은 이벤트 뷰어의 시스템 로그에 있는 이벤트 로그 개체의 스크립트 속성을 가져옵니다. 이 경우 스크립트 속성은 EventID뿐입니다.
예 5
C:\PS>get-eventlog -log system | get-member -membertype scriptproperty
TypeName: System.Diagnostics.EventLogEntry
Name MemberType Definition
---- ---------- ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}
설명
-----------
이 명령은 이벤트 뷰어의 시스템 로그에 있는 이벤트 로그 개체의 스크립트 속성을 가져옵니다.
이 명령은 MemberType 매개 변수를 사용하여 MemberType 속성 값이 AliasProperty인 개체만 가져옵니다.
이 명령은 EventLog 개체의 EventID 속성을 반환합니다.
예 6
C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"
C:\PS> foreach ($cmdlet in $a) {invoke-expression $cmdlet | get-member -name machinename}
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;}
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
MachineName Property System.String MachineName {get;set;}
설명
-----------
이 명령은 cmdlet 목록에서 MachineName 속성을 포함하는 개체를 가져옵니다.
첫 번째 명령은 여러 cmdlet 이름을 $a 변수에 저장합니다.
두 번째 명령은 ForEach 문을 사용하여 각 명령을 호출한 다음 그 결과를 Get-Member로 보냅니다. Get-Member의 결과는 이름이 "MachineName"인 멤버로 제한됩니다.
명령 실행 결과는 프로세스 개체(System.Diagnostics.Process)와 서비스 개체(System.ServiceProcess.ServiceController)에만 MachineName 속성이 포함되는 것을 보여 줍니다.
예 7
C:\PS>$a = get-member -inputobject @(1)
C:\PS>$a.count
1
C:\PS> $a = get-member -inputobject 1,2,3
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
C:\PS>$a.count
1
설명
-----------
이 예제에서는 지정된 유형의 개체가 하나뿐일 때 개체 배열의 속성 및 메서드를 찾는 방법을 보여 줍니다.
이 명령은 배열의 속성을 찾기 위한 것이므로 명령은 먼저 InputObject 매개 변수를 사용합니다. 그리고 @ 기호를 사용하여 배열을 나타냅니다. 이 경우 배열에 포함된 개체는 정수 1 하나뿐입니다.
세 번째 명령은 Get-Member cmdlet을 사용하여 정수 배열의 속성 및 메서드를 가져온 다음 이를 $a 변수에 저장합니다.
네 번째 명령은 배열의 Count 속성을 사용하여 $a 변수의 개체 수를 찾습니다.