Get-Member

개체의 속성 및 메서드를 가져옵니다.

Syntax

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.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_ 메서드와 같은 내장 멤버를 포함하여 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.Service.ServiceController#StartupType

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.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 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 BaseAdapted를 제외한 모든 보기에서 이러한 속성을 가져오지만 표시하지는 않습니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

해당 멤버를 검색할 개체를 지정합니다.

InputObject 매개 변수를 사용하는 것은 개체Get-Member를 파이핑하는 것과 다릅니다. 차이점은 다음과 같습니다.

  • 개체 컬렉션을 파이프할 Get-MemberGet-Member 때 문자열 배열에 있는 각 문자열의 속성과 같이 컬렉션에 있는 개별 개체의 멤버를 가져옵니다.
  • InputObject를 사용하여 개체 Get-Member 컬렉션을 제출하는 경우 문자열 배열의 배열 속성과 같은 컬렉션의 멤버를 가져옵니다.
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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사용하는 경우 두 집합에 속하는 멤버를 가져옵니다.

Type:PSMemberTypes
Aliases:Type
Accepted values:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

개체의 하나 이상의 속성 또는 메서드의 이름을 지정합니다. Get-Member 는 지정된 속성 및 메서드만 가져옵니다.

MemberType, View 또는 Static 매개 변수와 함께 Name 매개 변수를 사용하는 경우 모든 매개 Get-Member 변수의 조건을 충족하는 멤버만 가져옵니다.

이름으로 정적 멤버를 얻으려면 Name 매개 변수와 함께 Static 매개 변수를 사용합니다.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Static

이 cmdlet은 개체의 정적 속성 및 메서드만 가져옵니다. 정적 속성 및 메서드는 클래스의 특정 인스턴스가 아니라 개체 클래스에 정의됩니다.

View 또는 Force 매개 변수와 함께 정적 매개 변수를 사용하는 경우 cmdlet은 해당 매개 변수를 무시합니다. MemberType 매개 변수와 함께 Static 매개 변수 Get-Member사용하는 경우 두 집합에 속하는 멤버만 가져옵니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

이 cmdlet은 특정 형식 속성 및 메서드만 가져오게 지정합니다. 하나 이상의 값을 지정합니다. 기본값은 Adapted, Extended입니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • 밑입니다. 확장 또는 적응 없이 .NET 개체의 원래 속성 및 메서드만 가져옵니다.
  • 적응. PowerShell 확장 형식 시스템에 정의된 속성 및 메서드만 가져옵니다.
  • 확장. 파일에 추가되었거나 cmdlet을 Types.ps1xml 사용하여 Add-Member 추가된 속성 및 메서드만 가져옵니다.
  • 모두. Base, Adapted 및 Extended 보기의 멤버를 가져옵니다.

View 매개 변수는 해당 멤버의 표시뿐만 아니라 검색된 멤버를 결정합니다.

스크립트 속성과 같은 특정 멤버 형식을 얻으려면 MemberType 매개 변수를 사용합니다. 동일한 명령에서 MemberTypeView 매개 변수를 사용하는 경우 두 집합에 속하는 멤버를 Get-Member 가져옵니다. 동일한 명령에서 StaticView 매개 변수를 사용하는 경우 View 매개 변수는 무시됩니다.

Type:PSMemberViewTypes
Accepted values:Extended, Adapted, Base, All
Position:Named
Default value:Adapted, Extended
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

PSObject

모든 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

MemberDefinition

이 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 반환합니다.