Get-Member
Mendapatkan properti dan metode objek.
Sintaks
Default (Default)
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Deskripsi
cmdlet Get-Member mendapatkan anggota, properti dan metode, objek.
Untuk menentukan objek, gunakan parameter InputObject atau pipa objek untuk Get-Member. Untuk mendapatkan informasi tentang anggota statis, anggota kelas, bukan instans, gunakan parameter Statis
Get-Member mengembalikan daftar anggota yang diurutkan menurut abjad. Metode dicantumkan terlebih dahulu, diikuti oleh properti.
Contoh
Contoh 1: Mendapatkan anggota objek proses
Perintah ini menampilkan properti dan metode objek layanan yang dihasilkan oleh cmdlet Get-Service.
Karena bagian Get-Member dari perintah tidak memiliki parameter apa pun, perintah tersebut menggunakan nilai default untuk parameter. Secara default, Get-Member tidak mendapatkan anggota statis atau intrinsik.
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();
Contoh 2: Mendapatkan anggota objek layanan
Contoh ini mendapatkan semua anggota (properti dan metode) objek layanan yang diambil oleh cmdlet Get-Service, termasuk anggota intrinsik, seperti psbase, psobject, dan metode get_ dan set_.
Get-Service | Get-Member -Force
(Get-Service Schedule).psbase
Perintah Get-Member menggunakan parameter Force untuk menambahkan anggota intrinsik dan anggota objek yang dihasilkan kompilator ke tampilan. Anda dapat menggunakan properti dan metode ini dengan cara yang sama seperti Anda akan menggunakan metode objek yang disesuaikan. Perintah kedua menunjukkan cara menampilkan nilai properti psbase dari layanan Jadwal. Untuk informasi selengkapnya tentang anggota intrinsik, lihat about_Intrinsic_Members
Contoh 3: Mendapatkan anggota objek layanan yang diperluas
Contoh ini mendapatkan metode dan properti objek layanan yang diperluas menggunakan file Types.ps1xml atau cmdlet Add-Member.
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();
Perintah Get-Member menggunakan parameter Lihat untuk mendapatkan hanya anggota objek layanan yang diperluas. Dalam hal ini, anggota yang diperluas adalah properti Nama, yang merupakan properti alias dari properti ServiceName.
Contoh 4: Mendapatkan properti skrip objek log peristiwa
Contoh ini mendapatkan properti skrip objek log peristiwa di log Sistem di Pemeriksa Peristiwa.
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 ...
Parameter MemberType hanya mendapatkan objek dengan nilai NoteProperty untuk properti MemberType mereka.
Perintah mengembalikan properti Pesan dari objek EventLogRecord.
Contoh 5: Mendapatkan objek dengan properti tertentu
Contoh ini mendapatkan objek yang memiliki properti MachineName dalam output dari daftar cmdlet.
Variabel $list berisi daftar cmdlet yang akan dievaluasi. Pernyataan foreach memanggil setiap perintah dan mengirim hasilnya ke Get-Member. Parameter Nama membatasi hasil dari Get-Member ke anggota yang memiliki nama 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;}
Hasilnya menunjukkan bahwa hanya objek proses dan objek layanan yang memiliki properti MachineName.
Contoh 6: Mendapatkan anggota untuk array
Contoh ini menunjukkan cara menemukan anggota array objek. Saat Anda menyalurkan dan array objek ke Get-Member, cmdlet mengembalikan daftar anggota untuk setiap jenis objek unik dalam array.
Jika Anda meneruskan array menggunakan parameter InputObject, array diperlakukan sebagai objek tunggal.
$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...
...
Variabel $array berisi objek Int32 dan objek string, seperti yang terlihat ketika array disalurkan ke Get-Member. Saat $array diteruskan menggunakan parameter InputObjectGet-Member mengembalikan anggota jenis Object[] .
Contoh 7: Tentukan properti objek mana yang dapat Anda atur
Contoh ini menunjukkan cara menentukan properti objek mana yang dapat diubah.
$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
Contoh 8: Mencantumkan properti objek dalam urutan pembuatannya
Contoh ini membuat PSObject baru dan menambahkan properti ke dalamnya.
Get-Member mencantumkan properti dalam urutan alfabet. Untuk melihat properti dalam urutan ditambahkan ke objek, Anda harus menggunakan psobject anggota intrinsik.
$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
Parameter
-Force
Menambahkan anggota intrinsik dan metode get_ dan set_ yang dihasilkan kompilator ke tampilan.
Daftar berikut ini menjelaskan properti yang ditambahkan saat Anda menggunakan parameter Force
-
psbase: Properti asli objek .NET tanpa ekstensi atau adaptasi. Ini adalah properti yang ditentukan untuk kelas objek. -
psadapted: Properti dan metode yang ditentukan dalam sistem jenis powerShell yang diperluas. -
psextended: Properti dan metode yang ditambahkan dalam fileTypes.ps1xmlatau menggunakan cmdletAdd-Member. -
psobject: Adaptor yang mengonversi objek dasar ke objek PowerShell PSObject. -
pstypenames: Daftar jenis objek yang menjelaskan objek, dalam urutan kekhususan. Saat memformat objek, PowerShell mencari jenis dalam fileFormat.ps1xmldi direktori penginstalan PowerShell ($PSHOME). Ini menggunakan definisi pemformatan untuk jenis pertama yang ditemukannya.
Secara default, Get-Member mendapatkan properti ini di semua tampilan kecuali Dasar dan Disesuaikan, tetapi tidak menampilkannya.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-InputObject
Menentukan objek yang anggotanya diambil.
Menggunakan parameter InputObject tidak sama dengan pipa objek ke Get-Member. Perbedaannya adalah sebagai berikut:
- Saat Anda menyalurkan kumpulan objek ke
Get-Member,Get-Membermendapatkan anggota objek individual dalam koleksi, seperti properti setiap string dalam array string. - Saat Anda menggunakan InputObject untuk mengirimkan kumpulan objek,
Get-Membermendapatkan anggota koleksi, seperti properti array dalam array string.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-MemberType
Menentukan tipe anggota yang didapat cmdlet ini. Defaultnya adalah All.
Nilai yang dapat diterima untuk parameter ini adalah:
AliasPropertyCodePropertyPropertyNotePropertyScriptPropertyPropertiesPropertySetMethodCodeMethodScriptMethodMethodsParameterizedPropertyMemberSetEventDynamicAll
Nilai-nilai ini didefinisikan sebagai enumerasi berbasis bendera. Anda dapat menggabungkan beberapa nilai bersama-sama untuk mengatur beberapa bendera menggunakan parameter ini. Nilai dapat diteruskan ke parameter MemberType sebagai array nilai atau sebagai string yang dipisahkan koma dari nilai tersebut. Cmdlet akan menggabungkan nilai menggunakan operasi biner-OR. Meneruskan nilai sebagai array adalah opsi paling sederhana dan juga memungkinkan Anda menggunakan penyelesaian tab pada nilai.
Untuk informasi tentang nilai-nilai ini, lihat Enumerasi PSMemberTypes.
Tidak semua objek memiliki setiap jenis anggota. Jika Anda menentukan jenis anggota yang tidak dimiliki objek, PowerShell mengembalikan nilai null. Untuk mendapatkan jenis anggota terkait, seperti semua anggota yang diperluas, gunakan parameter Tampilan Get-Member mendapatkan anggota yang termasuk dalam kedua set.
Properti parameter
| Jenis: | PSMemberTypes |
| Nilai default: | None |
| Nilai yang diterima: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Tipe |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Name
Menentukan nama satu atau beberapa properti atau metode objek.
Get-Member hanya mendapatkan properti dan metode yang ditentukan.
Jika Anda menggunakan parameter Nama dengan parameter MemberType, Lihat, atau Statis, Get-Member hanya mendapatkan anggota yang memenuhi kriteria semua parameter.
Untuk mendapatkan anggota statis berdasarkan nama, gunakan parameter Statis
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | 0 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Static
Menunjukkan bahwa cmdlet ini hanya mendapatkan properti statis dan metode objek. Properti statis dan metode didefinisikan pada kelas objek, bukan pada instans kelas tertentu.
Jika Anda menggunakan parameter Statis dengan parameter View atau Force, cmdlet mengabaikan parameter tersebut. Jika Anda menggunakan parameter Statis dengan parameter MemberType, Get-Member hanya mendapatkan anggota yang termasuk dalam kedua set.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-View
Menentukan bahwa cmdlet ini hanya mendapatkan properti dan metode jenis tertentu. Tentukan satu atau beberapa nilai. Defaultnya adalah Adapted, Extended.
Nilai yang dapat diterima untuk parameter ini adalah:
- Dasar. Hanya mendapatkan properti dan metode asli objek .NET (tanpa ekstensi atau adaptasi).
- Disesuaikan. Hanya mendapatkan properti dan metode yang ditentukan dalam sistem jenis powerShell yang diperluas.
- Diperpanjang. Hanya mendapatkan properti dan metode yang ditambahkan dalam file
Types.ps1xmlatau dengan menggunakan cmdletAdd-Member. - Semua. Mendapatkan anggota di tampilan Dasar, Diadaptasi, dan Diperluas.
Parameter Tampilan
Untuk mendapatkan jenis anggota tertentu, seperti properti skrip, gunakan parameter MemberType Get-Member mendapatkan anggota yang termasuk dalam kedua set. Jika Anda menggunakan parameter
Properti parameter
| Jenis: | PSMemberViewTypes |
| Nilai default: | Adapted, Extended |
| Nilai yang diterima: | Extended, Adapted, Base, All |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
PSObject
Anda dapat menyalurkan objek apa pun ke cmdlet ini.
Output
MemberDefinition
Cmdlet ini mengembalikan MemberDefinition untuk setiap properti atau metode yang didapatkannya.
Catatan
PowerShell menyertakan alias berikut untuk Get-Member:
- Semua platform:
gm
Anda bisa mendapatkan informasi tentang objek koleksi baik menggunakan parameter InputObject atau dengan mempipa objek, yang didahului oleh koma, untuk Get-Member.
Anda dapat menggunakan variabel otomatis $this dalam blok skrip yang menentukan nilai properti dan metode baru. Variabel $this mengacu pada instans objek tempat properti dan metode ditambahkan. Untuk informasi selengkapnya tentang variabel $this, lihat about_Automatic_Variables.
Jika Anda meneruskan objek yang mewakili jenis , seperti jenis harfiah seperti [int], Get-Member mengembalikan informasi tentang jenis [System.RuntimeType]. Namun, saat Anda menggunakan parameter Statis, Get-Member mengembalikan anggota statis dari jenis tertentu yang diwakili oleh instans System.RuntimeType.