Get-Member
개체의 속성 및 메서드를 가져옵니다.
구문
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
cmdlet은 Get-Member
개체의 멤버, 속성 및 메서드를 가져옵니다.
개체를 지정하려면 InputObject 매개 변수를 사용하거나 개체를 파이프합니다Get-Member
. 정적 멤버에 대한 정보를 얻으려면 인스턴스가 아닌 클래스의 멤버는 Static 매개 변수를 사용합니다. NoteProperties와 같은 특정 형식의 멤버만 얻으려면 MemberType 매개 변수를 사용합니다.
Get-Member
는 사전순으로 정렬된 멤버 목록을 반환합니다. 메서드가 먼저 나열된 다음 속성이 나열됩니다.
예제
예제 1: 프로세스 개체의 멤버 가져오기
이 명령은 cmdlet에 의해 생성된 서비스 개체의 속성과 메서드를 Get-Service
표시합니다.
명령 부분에는 Get-Member
매개 변수가 없으므로 매개 변수에 기본값을 사용합니다. 기본적으로 Get-Member
정적 또는 내장 멤버를 얻지 않습니다.
Get-Service | 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 void Close()
Continue Method void Continue()
CreateObjRef Method System.Runtime.Remoting.ObjRef CreateObjRef(type requestedType)
Dispose Method void Dispose(), void IDisposable.Dispose()
Equals Method bool Equals(System.Object obj)
ExecuteCommand Method void ExecuteCommand(int command)
GetHashCode Method int GetHashCode()
GetLifetimeService Method System.Object GetLifetimeService()
GetType Method type GetType()
InitializeLifetimeService Method System.Object InitializeLifetimeService()
Pause Method void Pause()
Refresh Method void Refresh()
Start Method void Start(), void Start(string[] args)
Stop Method void Stop()
WaitForStatus Method void WaitForStatus(System.ServiceProcess.ServiceControllerSt...
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName Property string DisplayName {get;set;}
MachineName Property string MachineName {get;set;}
ServiceHandle Property System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName Property 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;}
StartType Property System.ServiceProcess.ServiceStartMode StartType {get;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
ToString ScriptMethod System.Object ToString();
예제 2: 서비스 개체의 멤버 가져오기
이 예제에서는 PSBase, PSObject, get_ 및 set_ 메서드와 같은 내장 멤버를 포함하여 cmdlet에서 검색 Get-Service
한 서비스 개체의 모든 멤버(속성 및 메서드)를 가져옵니다.
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
이 Get-Member
명령은 Force 매개 변수를 사용하여 개체의 내장 멤버 및 컴파일러 생성 멤버를 디스플레이에 추가합니다. 이러한 속성 및 메서드는 조정된 개체 메서드를 사용하는 것과 같은 방식으로 사용할 수 있습니다. 두 번째 명령은 Schedule 서비스의 PSBase 속성 값을 표시하는 방법을 보여 줍니다. 내장 멤버에 대한 자세한 내용은 about_Intrinsic_Members 참조 하세요.
예제 3: 서비스 개체의 확장 멤버 가져오기
이 예제에서는 파일 또는 Add-Member
cmdlet을 사용하여 Types.ps1xml
확장된 서비스 개체의 메서드 및 속성을 가져옵니다.
Get-Service | Get-Member -View Extended
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString ScriptMethod System.Object ToString();
이 Get-Member
명령은 View 매개 변수를 사용하여 서비스 개체의 확장 멤버만 가져옵니다. 이 경우 확장 멤버는 Name 속성이며 ServiceName 속성의 별칭 속성입니다.
예제 4: 이벤트 로그 개체의 스크립트 속성 가져오기
이 예제에서는 이벤트 뷰어 시스템 로그에서 이벤트 로그 개체의 스크립트 속성을 가져옵니다.
Get-WinEvent -LogName System -MaxEvents 1 | Get-Member -MemberType NoteProperty
TypeName: System.Diagnostics.Eventing.Reader.EventLogRecord
Name MemberType Definition
---- ---------- ----------
Message NoteProperty string Message=The machine-default permission settings do not grant Local ...
MemberType 매개 변수는 MemberType 속성의 NoteProperty
값이 있는 개체만 가져옵니다.
이 명령은 EventLogRecord 개체의 Message 속성을 반환합니다.
예제 5: 지정된 속성이 있는 개체 가져오기
이 예제에서는 cmdlet 목록에서 출력에 MachineName 속성이 있는 개체를 가져옵니다.
변수에는 $list
평가할 cmdlet 목록이 포함되어 있습니다. 이 문은 foreach
각 명령을 호출하고 결과를 .에 Get-Member
보냅니다. Name 매개 변수는 결과를 Get-Member
MachineName이라는 이름의 멤버로 제한합니다.
$list = "Get-Process", "Get-Service", "Get-Culture", "Get-PSDrive", "Get-ExecutionPolicy"
foreach ($cmdlet in $list) {& $cmdlet | Get-Member -Name MachineName}
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;}
TypeName: System.ServiceProcess.ServiceController
Name MemberType Definition
---- ---------- ----------
MachineName Property string MachineName {get;set;}
결과에는 프로세스 개체 및 서비스 개체만 MachineName 속성이 있음을 보여 줍니다.
예제 6: 배열에 대한 멤버 가져오기
이 예제에서는 개체 배열의 멤버를 찾는 방법을 보여 줍니다. 개체의 배열을 파이프하고 배열할 Get-Member
때 cmdlet은 배열의 각 고유한 개체 형식에 대한 멤버 목록을 반환합니다.
InputObject 매개 변수를 사용하여 배열을 전달하는 경우 배열은 단일 개체로 처리됩니다.
$array = @(1,'hello')
$array | Get-Member
TypeName: System.Int32
Name MemberType Definition
---- ---------- ----------
CompareTo Method int CompareTo(System.Object value), int CompareTo(int value), int ICompar...
Equals Method bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable[int...
GetHashCode Method int GetHashCode()
GetType Method type GetType()
GetTypeCode Method System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()
ToBoolean Method bool IConvertible.ToBoolean(System.IFormatProvider provider)
ToByte Method byte IConvertible.ToByte(System.IFormatProvider provider)
...
TypeName: System.String
Name MemberType Definition
---- ---------- ----------
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
CompareTo Method int CompareTo(System.Object value), int CompareTo(str...
Contains Method bool Contains(string value), bool Contains(string val...
CopyTo Method void CopyTo(int sourceIndex, char[] destination, int ...
EndsWith Method bool EndsWith(string value), bool EndsWith(string val...
EnumerateRunes Method System.Text.StringRuneEnumerator EnumerateRunes()
Equals Method bool Equals(System.Object obj), bool Equals(string va...
GetEnumerator Method System.CharEnumerator GetEnumerator(), System.Collect...
GetHashCode Method int GetHashCode(), int GetHashCode(System.StringCompa...
...
Get-Member -InputObject $array
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Add Method int IList.Add(System.Object value)
Address Method System.Object&, System.Private.CoreLib, Version=4.0.0.0, Cu...
Clear Method void IList.Clear()
Clone Method System.Object Clone(), System.Object ICloneable.Clone()
CompareTo Method int IStructuralComparable.CompareTo(System.Object other, Sy...
...
변수에는 $array
배열이 파이프될 때와 같이 Int32 개체와 문자열 개체가 포함됩니다 Get-Member
. $array
InputObject 매개 변수 Get-Member
를 사용하여 전달되면 Object[] 형식의 멤버가 반환됩니다.
예제 7: 설정할 수 있는 개체 속성 결정
이 예제에서는 변경할 수 있는 개체의 속성을 확인하는 방법을 보여줍니다.
$File = Get-Item c:\test\textFile.txt
$File.PSObject.Properties | Where-Object isSettable | Select-Object -Property Name
Name
----
PSPath
PSParentPath
PSChildName
PSDrive
PSProvider
PSIsContainer
IsReadOnly
CreationTime
CreationTimeUtc
LastAccessTime
LastAccessTimeUtc
LastWriteTime
LastWriteTimeUtc
Attributes
예제 8: 개체의 속성을 만든 순서대로 나열합니다.
이 예제에서는 새 PSObject를 만들고 해당 PSObject 에 속성을 추가합니다. Get-Member
는 속성을 사전순으로 나열합니다. 속성이 개체에 추가된 순서대로 표시하려면 PSObject 내장 멤버를 사용해야 합니다.
$Asset = New-Object -TypeName PSObject
$d = [ordered]@{Name="Server30";System="Server Core";PSVersion="4.0"}
$Asset | Add-Member -NotePropertyMembers $d -TypeName Asset
$Asset.PSObject.Properties | Select-Object Name, Value
Name Value
---- -----
Name Server30
System Server Core
PSVersion 4.0
매개 변수
-Force
내장 멤버와 컴파일러에서 생성된 get_ 및 set_ 메서드를 디스플레이에 추가합니다. 다음 목록에서는 Force 매개 변수를 사용할 때 추가되는 속성에 대해 설명합니다.
PSBase
: 확장 또는 적응이 없는 .NET 개체의 원래 속성입니다. 개체 클래스에 대해 정의된 속성입니다.PSAdapted
: PowerShell 확장 형식 시스템에 정의된 속성 및 메서드입니다.PSExtended
: 파일 또는 cmdlet을Types.ps1xml
사용하여Add-Member
추가된 속성 및 메서드입니다.PSObject
: 기본 개체를 PowerShell PSObject 개체로 변환하는 어댑터입니다.PSTypeNames
: 특정성 순서로 개체를 설명하는 개체 형식 목록입니다. 개체의 서식을 지정할 때 PowerShell은 PowerShell 설치 디렉터리($PSHOME
)의 파일에서Format.ps1xml
형식을 검색합니다. 찾은 첫 번째 형식에 대한 서식 정의를 사용합니다.
기본적으로 Get-Member
Base 및 Adapted를 제외한 모든 보기에서 이러한 속성을 가져오지만 표시하지는 않습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
해당 멤버를 검색할 개체를 지정합니다.
InputObject 매개 변수를 사용하는 것은 개체Get-Member
를 파이핑하는 것과 다릅니다. 차이점은 다음과 같습니다.
- 개체 컬렉션을 파이프할
Get-Member
Get-Member
때 문자열 배열에 있는 각 문자열의 속성과 같이 컬렉션에 있는 개별 개체의 멤버를 가져옵니다. - InputObject를 사용하여 개체
Get-Member
컬렉션을 제출하는 경우 문자열 배열의 배열 속성과 같은 컬렉션의 멤버를 가져옵니다.
형식: | PSObject |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-MemberType
이 cmdlet이 가져오는 멤버 형식을 지정합니다. 기본값은 All
입니다.
이 매개 변수에 허용되는 값은 다음과 같습니다.
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
이러한 값은 플래그 기반 열거형으로 정의됩니다. 이 매개 변수를 사용하여 여러 값을 결합하여 여러 플래그를 설정할 수 있습니다. 값은 MemberType 매개 변수에 값 배열 또는 해당 값의 쉼표로 구분된 문자열로 전달될 수 있습니다. cmdlet은 이진 OR 연산을 사용하여 값을 결합합니다. 값을 배열로 전달하는 것이 가장 간단한 옵션이며 값에 대한 탭 완성을 사용할 수도 있습니다.
이러한 값에 대한 자세한 내용은 PSMemberTypes 열거형을 참조 하세요.
모든 개체에 모든 형식의 멤버가 있는 것은 아닙니다. 개체에 없는 멤버 형식을 지정하면 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
는 지정된 속성 및 메서드만 가져옵니다.
MemberType, View 또는 Static 매개 변수와 함께 Name 매개 변수를 사용하는 경우 모든 매개 Get-Member
변수의 조건을 충족하는 멤버만 가져옵니다.
이름으로 정적 멤버를 얻으려면 Name 매개 변수와 함께 Static 매개 변수를 사용합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Static
이 cmdlet은 개체의 정적 속성 및 메서드만 가져옵니다. 정적 속성 및 메서드는 클래스의 특정 인스턴스가 아니라 개체 클래스에 정의됩니다.
View 또는 Force 매개 변수와 함께 정적 매개 변수를 사용하는 경우 cmdlet은 해당 매개 변수를 무시합니다. MemberType 매개 변수와 함께 Static 매개 변수 Get-Member
를 사용하는 경우 두 집합에 속하는 멤버만 가져옵니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-View
이 cmdlet은 특정 형식 속성 및 메서드만 가져오게 지정합니다. 하나 이상의 값을 지정합니다. 기본값은 Adapted, Extended입니다.
이 매개 변수에 허용되는 값은 다음과 같습니다.
- 밑입니다. 확장 또는 적응 없이 .NET 개체의 원래 속성 및 메서드만 가져옵니다.
- 적응. PowerShell 확장 형식 시스템에 정의된 속성 및 메서드만 가져옵니다.
- 확장. 파일에 추가되었거나 cmdlet을
Types.ps1xml
사용하여Add-Member
추가된 속성 및 메서드만 가져옵니다. - 모두. Base, Adapted 및 Extended 보기의 멤버를 가져옵니다.
View 매개 변수는 해당 멤버의 표시뿐만 아니라 검색된 멤버를 결정합니다.
스크립트 속성과 같은 특정 멤버 형식을 얻으려면 MemberType 매개 변수를 사용합니다. 동일한 명령에서 MemberType 및 View 매개 변수를 사용하는 경우 두 집합에 속하는 멤버를 Get-Member
가져옵니다. 동일한 명령에서 Static 및 View 매개 변수를 사용하는 경우 View 매개 변수는 무시됩니다.
형식: | PSMemberViewTypes |
허용되는 값: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
모든 개체를 이 cmdlet으로 파이프할 수 있습니다.
출력
이 cmdlet은 가져오는 각 속성 또는 메서드에 대한 MemberDefinition을 반환합니다.
참고
Windows PowerShell에는 다음 별칭이 포함됩니다.Get-Member
gm
InputObject 매개 변수를 사용하거나 쉼Get-Member
표 앞에 오는 개체를 파이핑하여 컬렉션 개체에 대한 정보를 가져올 수 있습니다.
새 속성 및 메서드의 $This
값을 정의하는 스크립트 블록에서 자동 변수를 사용할 수 있습니다. 변수는 $This
속성 및 메서드가 추가되는 개체의 인스턴스를 나타냅니다. 변수에 대한 $This
자세한 내용은 about_Automatic_Variables 참조하세요.
형식 리터럴과 [int]
Get-Member
같이 형식을 나타내는 개체를 전달하면 형식에 대한 [System.RuntimeType]
정보가 반환됩니다. 그러나 Static 매개 변수 Get-Member
를 사용하는 경우 인스턴스가 나타내는 특정 형식의 정적 멤버를 System.RuntimeType
반환합니다.
관련 링크
PowerShell