Get-Member
개체의 속성 및 메서드를 가져옵니다.
구문
Get-Member
[[-Name] <String[]>]
[-InputObject <PSObject>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
Get-Member cmdlet은 개체의 멤버, 속성 및 메서드를 가져옵니다.
개체를 지정하려면
예제
예제 1: 프로세스 개체의 멤버 가져오기
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-Member 부분에는 매개 변수가 없으므로 모든 기본값을 사용합니다. 따라서 모든 멤버 형식을 가져오지만 정적 멤버를 가져오지 않고 내장 멤버를 표시하지 않습니다.
예제 2: 서비스 개체의 멤버 가져오기
PS> Get-Service | Get-Member -Force
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: 서비스 개체의 확장 멤버 가져오기
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 매개 변수를 사용하여 서비스 개체의 확장 멤버만 가져옵니다. 이 경우 확장 멤버는 Name 속성이며 ServiceName 속성의 별칭 속성입니다.
예제 4: 이벤트 로그 개체의 스크립트 속성 가져오기
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 속성에 대한 ScriptProperty 값이 있는 개체만 가져옵니다.
이 명령은 EventLog 개체의 EventID 속성을 반환합니다.
예제 5: 지정된 속성이 있는 개체 가져오기
PS> $A = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
PS> ForEach ($Cmdlet in $A) {Invoke-Command $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 속성이 있음을 보여 줍니다.
예제 6: 배열에 대한 멤버 가져오기
PS> $A = @(1)
PS> $A.Count
1
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A = @(1,2,3)
PS> Get-Member -InputObject $A
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object& Address(Int32 )
Clone Method System.Object Clone()
...
PS> $A.Count
3
이 예제에서는 지정된 형식의 개체가 하나만 있는 경우 개체 배열의 속성과 메서드를 찾는 방법을 보여 줍니다.
명령의 목표는 배열의 속성을 찾는 것이므로 첫 번째 명령은 InputObject 매개 변수를 사용합니다. at 기호(@)를 사용하여 배열을 나타냅니다. 이 경우 배열에는 하나의 개체(정수 1)만 포함됩니다.
세 번째 명령은 Get-Member cmdlet을 사용하여 정수 배열의 속성과 메서드를 가져와서 $A 변수에 저장합니다.
네 번째 명령은 배열의 Count 속성을 사용하여 $A 변수에서 개체 수를 찾습니다.
예제 7: 설정할 수 있는 개체 속성 결정
PS> $File = Get-Item c:\test\textFile.txt
PS> $File.psobject.properties | Where-Object {$_.issettable} | Format-Table -Property name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
PS> [appdomain]::CurrentDomain.GetAssemblies() | ForEach-Object { $_.getexportedtypes() } | ForEach-Object {$_.getproperties() | Where-Object {$_.canwrite }} | Select-Object reflectedtype, name
이 예제에서는 변경할 수 있는 개체의 속성을 확인하는 방법을 보여줍니다. 이 예제에서는 파일을 사용하지만 이 명령 형식을 사용하여 Windows PowerShell에서 모든 개체의 변경 가능한 속성을 찾을 수 있습니다.
첫 번째 명령은 Get-Item cmdlet을 사용하여 텍스트 파일을 가져옵니다. 그런 다음 파일 개체를 $File 변수에 저장합니다.
두 번째 명령은 $File 변수에서 파일 개체의 변경 가능한 속성을 모두 가져오고 테이블에 있는 속성의 이름을 표시합니다.
세 번째 명령은 Windows PowerShell 세션에 있는 모든 개체의 변경 가능한 속성을 가져옵니다.
예제 8: 컬렉션에 있는 각 항목의 멤버 가져오기
PS> $S = Get-Service
PS> $S | Get-Member
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
Disposed Event System.EventHandler Disposed(System.Object, System.EventArgs
Close Method System.Void Close()
Continue Method System.Void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedTy
Dispose Method System.Void Dispose()
...
PS> Get-Member -InputObject $S
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Address Method System.Object&, mscorlib, Version=2.0.0.0, Cultu
Clone Method System.Object Clone()
CopyTo Method System.Void CopyTo(array array, int index), Syst
Equals Method bool Equals(System.Object obj)
Get Method System.Object Get(int )
GetEnumerator Method System.Collections.IEnumerator GetEnumerator()
GetHashCode Method int GetHashCode()
...
이 예제에서는 Get-Member cmdlet에서 InputObject 매개 변수가 작동하는 방법을 보여 줍니다.
InputObject 매개 변수를 사용하여 컬렉션의 멤버를 가져오는 경우 Get-Member 컬렉션의 멤버를 가져옵니다.
개체 컬렉션을 get-Member
첫 번째 명령은 로컬 컴퓨터에서 서비스를 가져오고 $S 변수에 서비스를 저장합니다.
두 번째 명령은 $S 변수를 Get-Member cmdlet으로 파이프합니다. Get-Member $S 각 멤버의 형식과 해당 형식의 멤버를 가져옵니다. 이 경우 ServiceController 개체를 가져오고 RequiredServices 및 Close와 같은 멤버를 나열합니다.
세 번째 명령은 Get-MemberInputObject 매개 변수를 사용하여 $S 변수를 제출합니다. Get-Member 형식(System.Object[])과 ServiceController 개체의 컬렉션(또는 배열)의 멤버(예: Count 및 Clone)를 가져옵니다.
매개 변수
-Force
내장 멤버(PSBase, PSAdapted, PSObject, PSTypeNames) 및 컴파일러에서 생성된 get_ 및 set_ 메서드를 표시에 추가합니다. 기본적으로 Get-Member Base 및 Adapted 이외의 모든 보기에서 이러한 속성을 가져오지만 표시되지는 않습니다.
다음 목록에서는 Force 매개 변수를 사용할 때 추가되는 속성에 대해 설명합니다.
- PSBase: 확장 또는 적응이 없는 .NET Framework 개체의 원래 속성입니다. 이러한 속성은 개체 클래스에 대해 정의되고 MSDN에 나열됩니다.
- PSAdapted. Windows PowerShell 확장 형식 시스템에 정의된 속성 및 메서드입니다.
- PSExtended. Types.ps1xml 파일 또는 Add-Member cmdlet을 사용하여 추가된 속성 및 메서드입니다.
- PSObject. 기본 개체를 Windows PowerShellPSObject 개체로 변환하는 어댑터입니다.
- PSTypeNames. 특정성 순서로 개체를 설명하는 개체 형식 목록입니다. 개체의 서식을 지정할 때 Windows PowerShell은 Windows PowerShell 설치 디렉터리($pshome)의 Format.ps1xml 파일에서 형식을 검색합니다. 찾은 첫 번째 형식에 대한 서식 정의를 사용합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
멤버가 검색되는 개체를 지정합니다.
- 개체 컬렉션을 get-Member
파이프하는 경우 Get-Member 문자열 배열에 있는 각 문자열의 속성과 같이 컬렉션에 있는 개별 개체의 멤버를 가져옵니다. - InputObject 사용하여 개체 컬렉션을 제출하는 경우 Get-Member 문자열 배열의 배열 속성과 같은 컬렉션의 멤버를 가져옵니다.
형식: | PSObject |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-MemberType
이 cmdlet이 가져오는 멤버 형식을 지정합니다. 기본값은 All입니다.
이 매개 변수에 허용되는 값은 다음과 같습니다.
- AliasProperty
- CodeProperty
- 재산
- NoteProperty
- ScriptProperty
- 속성
- PropertySet
- 메서드
- CodeMethod
- ScriptMethod
- 방법
- ParameterizedProperty
- MemberSet
- 이벤트
- 동적인
- 모두
이러한 값에 대한 자세한 내용은 MSDN 라이브러리의 PSMemberTypes 열거형 참조하세요.
모든 개체에 모든 형식의 멤버가 있는 것은 아닙니다. 개체에 없는 멤버 형식을 지정하면 Windows PowerShell에서 null 값을 반환합니다.
모든 확장 멤버와 같은 관련 형식의 멤버를 얻으려면 View 매개 변수를 사용합니다. Static 또는 View 매개 변수와 함께 MemberType 매개 변수를 사용하는 경우 Get-Member 두 집합에 속한 멤버를 가져옵니다.
형식: | PSMemberTypes |
별칭: | Type |
허용되는 값: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Name
개체의 하나 이상의 속성 또는 메서드의 이름을 지정합니다. Get-Member 지정된 속성과 메서드만 가져옵니다.
Name 매개 변수를 MemberType, View또는 Static 매개 변수와 함께 사용하는 경우 Get-Member 모든 매개 변수의 조건을 충족하는 멤버만 가져옵니다.
이름으로 정적 멤버를 얻으려면 Name 매개 변수와 함께 Static 매개 변수를 사용합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Static
이 cmdlet은 개체의 정적 속성 및 메서드만 가져옵니다.
정적 속성 및 메서드는 클래스의 특정 인스턴스가 아니라 개체 클래스에 정의됩니다.
View 매개 변수와 함께 Static 매개 변수를 사용하는 경우 View 매개 변수는 무시됩니다. MemberType 매개 변수와 함께 Static 매개 변수를 사용하는 경우 Get-Member 두 집합에 속한 멤버만 가져옵니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-View
이 cmdlet은 특정 형식 속성 및 메서드만 가져오게 지정합니다. 하나 이상의 값을 지정합니다. 기본값은 Adapted, Extended입니다.
유효한 값은 다음과 같습니다.
- 기지. 확장 또는 적응 없이 .NET Framework 개체의 원래 속성 및 메서드만 가져옵니다.
- 적응. Windows PowerShell 확장 형식 시스템에 정의된 속성 및 메서드만 가져옵니다.
- 확장. Types.ps1xml 파일 또는 Add-Member cmdlet을 사용하여 추가된 속성 및 메서드만 가져옵니다.
- 모두. Base, Adapted 및 Extended 보기의 멤버를 가져옵니다.
View 매개 변수는 해당 멤버의 표시뿐만 아니라 검색된 멤버를 결정합니다.
스크립트 속성과 같은 특정 멤버 형식을 얻으려면 MemberType 매개 변수를 사용합니다. 동일한 명령에서 MemberType 및 보기 매개 변수를 사용하는 경우 Get-Member 두 집합에 속한 멤버를 가져옵니다. 동일한 명령에서 정적 및 View 매개 변수를 사용하는 경우 View 매개 변수는 무시됩니다.
형식: | PSMemberViewTypes |
허용되는 값: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
개체를 Get-Member파이프할 수 있습니다.
출력
Get-Member 가져오는 각 속성 또는 메서드에 대한 개체를 반환합니다.
참고
InputObject 매개 변수를 사용하거나 쉼표 앞에 있는 개체를 파이핑하여 Get-Member컬렉션 개체에 대한 정보를 가져올 수 있습니다. 새 속성 및 메서드의 값을 정의하는 스크립트 블록에서 $This 자동 변수를 사용할 수 있습니다. $This 변수는 속성 및 메서드가 추가되는 개체의 인스턴스를 나타냅니다. $This 변수에 대한 자세한 내용은 about_Automatic_Variables 참조하세요.