Get-Member
개체의 속성 및 메서드를 가져옵니다.
구문
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
Get-Member
cmdlet은 개체의 멤버, 속성 및 메서드를 가져옵니다.
개체를 지정하려면 InputObject 매개 변수를 사용하거나 개체를 파이프하여 Get-Member
. 정적 멤버에 대한 정보를 얻으려면 인스턴스가 아닌 클래스의 멤버는 Static 매개 변수를 사용합니다.
NoteProperties같은 특정 형식의 멤버만 얻으려면 MemberType 매개 변수를 사용합니다.
Get-Member
사전순으로 정렬된 멤버 목록을 반환합니다. 메서드가 먼저 나열된 다음 속성이 나열됩니다.
예제
예제 1: 프로세스 개체의 멤버 가져오기
이 명령은 Get-Service
cmdlet에서 생성된 서비스 개체의 속성과 메서드를 표시합니다.
명령의 Get-Member
부분에는 매개 변수가 없으므로 매개 변수에 대한 기본값을 사용합니다. 기본적으로 Get-Member
정적 또는 내장 멤버를 얻지 않습니다.
Get-Service | Get-Member
TypeName: System.Service.ServiceController#StartupType
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()
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...
BinaryPathName Property System.String {get;set;}
CanPauseAndContinue Property bool CanPauseAndContinue {get;}
CanShutdown Property bool CanShutdown {get;}
CanStop Property bool CanStop {get;}
Container Property System.ComponentModel.IContainer Container {get;}
DelayedAutoStart Property System.Boolean {get;set;}
DependentServices Property System.ServiceProcess.ServiceController[] DependentServices {get;}
Description Property System.String {get;set;}
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;}
StartupType Property Microsoft.PowerShell.Commands.ServiceStartupType {get;set;}
Status Property System.ServiceProcess.ServiceControllerStatus Status {get;}
UserName Property System.String {get;set;}
ToString ScriptMethod System.Object ToString();
예제 2: 서비스 개체의 멤버 가져오기
이 예제에서는 psbase, psobject및 get_ 및 set_ 메서드와 같은 내장 멤버를 포함하여 Get-Service
cmdlet에서 검색한 서비스 개체의 모든 멤버(속성 및 메서드)를 가져옵니다.
Get-Service | Get-Member -Force
(Get-Service Schedule).psbase
Get-Member
명령은 Force 매개 변수를 사용하여 개체의 내장 멤버 및 컴파일러 생성 멤버를 디스플레이에 추가합니다. 개체의 적응된 메서드를 사용하는 것과 동일한 방식으로 이러한 속성과 메서드를 사용할 수 있습니다. 두 번째 명령은 Schedule 서비스의 psbase 속성 값을 표시하는 방법을 보여 줍니다. 내장 멤버에 대한 자세한 내용은 about_Intrinsic_Members 참조하세요.
예제 3: 서비스 개체의 확장 멤버 가져오기
이 예제에서는 Types.ps1xml
파일 또는 Add-Member
cmdlet을 사용하여 확장된 서비스 개체의 메서드 및 속성을 가져옵니다.
Get-Service | Get-Member -View Extended
TypeName: System.Service.ServiceController#StartupType
Name MemberType Definition
---- ---------- ----------
Name AliasProperty Name = ServiceName
RequiredServices AliasProperty RequiredServices = ServicesDependedOn
ToString ScriptMethod System.Object ToString();
Get-Member
명령은 View 매개 변수를 사용하여 서비스 개체의 확장 멤버만 가져옵니다. 이 경우 확장 멤버는 ServiceName 속성의 별칭 속성인 Name 속성입니다.
예제 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 매개 변수는 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.Service.ServiceController#StartupType
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
매개 변수를 사용하여 전달되면 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 만들고 속성에 추가합니다.
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
:Types.ps1xml
파일 또는Add-Member
cmdlet을 사용하여 추가된 속성 및 메서드입니다. -
psobject
: 기본 개체를 PowerShell PSObject 개체로 변환하는 어댑터입니다. -
pstypenames
: 특정성 순서로 개체를 설명하는 개체 형식 목록입니다. 개체의 서식을 지정할 때 PowerShell은 PowerShell 설치 디렉터리(Format.ps1xml
)의$PSHOME
파일에서 형식을 검색합니다. 찾은 첫 번째 형식에 대한 서식 정의를 사용합니다.
기본적으로 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 매개 변수와 함께 Static 매개 변수를 사용하는 경우 cmdlet은 해당 매개 변수를 무시합니다.
MemberType 매개 변수와 함께 Static 매개 변수를 사용하는 경우 Get-Member
두 집합에 속한 멤버만 가져옵니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-View
이 cmdlet은 특정 형식 속성 및 메서드만 가져오게 지정합니다. 하나 이상의 값을 지정합니다. 기본값은 Adapted, Extended.
이 매개 변수에 허용되는 값은 다음과 같습니다.
- 기지. 확장 또는 적응 없이 .NET 개체의 원래 속성 및 메서드만 가져옵니다.
- 적응. PowerShell 확장 형식 시스템에 정의된 속성 및 메서드만 가져옵니다.
- 확장.
Types.ps1xml
파일 또는Add-Member
cmdlet을 사용하여 추가된 속성 및 메서드만 가져옵니다. - 모두. Base, Adapted 및 Extended 보기의 멤버를 가져옵니다.
View 매개 변수는 해당 멤버의 표시뿐만 아니라 검색된 멤버를 결정합니다.
스크립트 속성과 같은 특정 멤버 형식을 얻으려면 MemberType 매개 변수를 사용합니다. 같은 명령에서 MemberType 사용하고 View 매개 변수를 사용하는 경우 Get-Member
두 집합에 속한 멤버를 가져옵니다. 동일한 명령에서 정적 및 View 매개 변수를 사용하는 경우 View 매개 변수는 무시됩니다.
형식: | PSMemberViewTypes |
허용되는 값: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
모든 개체를 이 cmdlet으로 파이프할 수 있습니다.
출력
이 cmdlet은 가져오는 각 속성 또는 메서드에 대한 MemberDefinition 반환합니다.
참고
PowerShell에는 Get-Member
다음과 같은 별칭이 포함되어 있습니다.
- 모든 플랫폼:
gm
InputObject 매개 변수를 사용하거나 쉼표 앞에 있는 개체를 파이핑하여 Get-Member
컬렉션 개체에 대한 정보를 가져올 수 있습니다.
새 속성 및 메서드의 값을 정의하는 스크립트 블록에서 $this
자동 변수를 사용할 수 있습니다.
$this
변수는 속성 및 메서드가 추가되는 개체의 인스턴스를 나타냅니다.
$this
변수에 대한 자세한 내용은 about_Automatic_Variables참조하세요.
같은 형식 리터럴과 같이 [int]
나타내는 개체를 전달하면 Get-Member
형식에 대한 정보를 반환할 [System.RuntimeType]
있습니다. 그러나 Static 매개 변수를 사용하는 경우 Get-Member
System.RuntimeType
인스턴스가 나타내는 특정 형식의 정적 멤버를 반환합니다.
관련 링크
PowerShell