다음을 통해 공유


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, psobjectget_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-MemberObject[] 형식의 멤버를 반환합니다.

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

형식: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

입력

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-MemberSystem.RuntimeType 인스턴스가 나타내는 특정 형식의 정적 멤버를 반환합니다.