Get-Member
Hämtar egenskaper och metoder för objekt.
Syntax
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Description
Cmdleten Get-Member
hämtar objektens medlemmar, egenskaper och metoder.
Om du vill ange objektet använder du parametern InputObject eller rör ett objekt för att Get-Member
. Om du vill få information om statiska medlemmar använder medlemmarna i klassen, inte för instansen, parametern Static. Om du bara vill hämta vissa typer av medlemmar, till exempel NotePropertiesanvänder du parametern MemberType.
Get-Member
returnerar en lista över medlemmar som sorteras alfabetiskt. Metoderna visas först, följt av egenskaperna.
Exempel
Exempel 1: Hämta medlemmar i processobjekt
Det här kommandot visar egenskaperna och metoderna för de tjänstobjekt som genereras av cmdleten Get-Service
.
Eftersom den Get-Member
delen av kommandot inte har några parametrar använder den standardvärden för parametrarna. Som standard får Get-Member
inte statiska eller inbyggda medlemmar.
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();
Exempel 2: Hämta medlemmar i tjänstobjekt
Det här exemplet hämtar alla medlemmar (egenskaper och metoder) för tjänstobjekt som hämtats av cmdleten Get-Service
, inklusive de inbyggda medlemmarna, till exempel PSBase, PSObjectoch metoderna get_ och set_.
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Kommandot Get-Member
använder parametern Force för att lägga till de inbyggda medlemmar och kompilatorgenererade medlemmarna i objekten i visningen. Du kan använda dessa egenskaper och metoder på samma sätt som du använder en anpassad metod för objektet. Det andra kommandot visar hur du visar värdet för egenskapen PSBase för schedule-tjänsten. Mer information om inbyggda medlemmar finns i about_Intrinsic_Members
Exempel 3: Hämta utökade medlemmar i tjänstobjekt
Det här exemplet hämtar metoder och egenskaper för tjänstobjekt som har utökats med hjälp av en Types.ps1xml
-fil eller cmdleten 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();
Kommandot Get-Member
använder parametern View för att endast hämta utökade medlemmar i tjänstobjekten. I det här fallet är den utökade medlemmen egenskapen Name, som är en aliasegenskap för egenskapen ServiceName.
Exempel 4: Hämta skriptegenskaper för händelseloggobjekt
Det här exemplet hämtar skriptegenskaperna för händelseloggobjekt i systemloggen i Loggboken.
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 ...
Parametern MemberType hämtar endast objekt med värdet NoteProperty
för egenskapen MemberType.
Kommandot returnerar egenskapen Message för objektet EventLogRecord.
Exempel 5: Hämta objekt med en angiven egenskap
Det här exemplet hämtar objekt som har egenskapen MachineName i utdata från en lista över cmdletar.
Variabeln $list
innehåller en lista över cmdletar som ska utvärderas. Instruktionen foreach
anropar varje kommando och skickar resultatet till Get-Member
. Parametern Name begränsar resultatet från Get-Member
till medlemmar som har namnet 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;}
Resultatet visar att endast processobjekt och tjänstobjekt har egenskapen MachineName.
Exempel 6: Hämta medlemmar för en matris
Det här exemplet visar hur du hittar medlemmarna i en matris med objekt. När du rör och matris med objekt som ska Get-Member
returnerar cmdleten en medlemslista för varje unik objekttyp i matrisen.
Om du skickar matrisen med parametern InputObject behandlas matrisen som ett enda objekt.
$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...
...
Variabeln $array
innehåller ett Int32--objekt och ett sträng objekt, vilket visas när matrisen dirigeras till Get-Member
. När $array
skickas med parametern InputObject returnerar Get-Member
medlemmarna i -objektet[] typ.
Exempel 7: Avgöra vilka objektegenskaper du kan ange
Det här exemplet visar hur du avgör vilka egenskaper för ett objekt som kan ändras.
$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
Exempel 8: Visa en lista över egenskaperna för ett objekt i den ordning de skapades
Det här exemplet skapar en ny PSObject- och lägger till egenskaper i den.
Get-Member
visar en lista över egenskaperna i alfabetisk ordning. Om du vill se egenskaperna i den ordning de lades till i objektet måste du använda PSObject inbyggd medlem.
$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
Parametrar
-Force
Lägger till de inbyggda medlemmarna och de kompilatorgenererade get_- och set_ metoderna i visningen. I följande lista beskrivs de egenskaper som läggs till när du använder parametern Force:
-
PSBase
: De ursprungliga egenskaperna för .NET-objektet utan tillägg eller anpassning. Det här är de egenskaper som definierats för objektklassen. -
PSAdapted
: De egenskaper och metoder som definierats i det utökade PowerShell-typsystemet. -
PSExtended
: De egenskaper och metoder som lades till iTypes.ps1xml
-filerna eller med hjälp av cmdletenAdd-Member
. -
PSObject
: Adaptern som konverterar basobjektet till ett PowerShell-PSObject- objekt. -
PSTypeNames
: En lista över objekttyper som beskriver objektet i ordning efter specificitet. När du formaterar objektet söker PowerShell efter typerna iFormat.ps1xml
-filerna i PowerShell-installationskatalogen ($PSHOME
). Den använder formateringsdefinitionen för den första typen som hittas.
Som standard hämtar Get-Member
dessa egenskaper i alla vyer förutom Base och Anpassad, men visar dem inte.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-InputObject
Anger det objekt vars medlemmar hämtas.
Att använda parametern InputObject är inte samma sak som att skicka ett objekt till Get-Member
. Skillnaderna är följande:
- När du skicka en samling objekt till
Get-Member
hämtarGet-Member
medlemmarna i de enskilda objekten i samlingen, till exempel egenskaperna för varje sträng i en strängmatris. - När du använder InputObject- för att skicka en samling objekt hämtar
Get-Member
medlemmarna i samlingen, till exempel matrisens egenskaper i en matris med strängar.
Typ: | PSObject |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-MemberType
Anger den medlemstyp som den här cmdleten hämtar. Standardvärdet är All
.
De godtagbara värdena för den här parametern är:
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
Dessa värden definieras som en flaggbaserad uppräkning. Du kan kombinera flera värden för att ange flera flaggor med hjälp av den här parametern. Värdena kan skickas till parametern MemberType som en matris med värden eller som en kommaavgränsad sträng av dessa värden. Cmdleten kombinerar värdena med hjälp av en binär-OR-åtgärd. Att skicka värden som en matris är det enklaste alternativet och du kan även använda tab-completion på värdena.
Information om dessa värden finns i PSMemberTypes Enumeration.
Alla objekt har inte alla typer av medlemmar. Om du anger en medlemstyp som objektet inte har returnerar PowerShell ett null-värde. Om du vill hämta relaterade typer av medlemmar, till exempel alla utökade medlemmar, använder du parametern View. Om du använder parametern MemberType med parametrarna Static eller View hämtar Get-Member
de medlemmar som tillhör båda uppsättningarna.
Typ: | PSMemberTypes |
Alias: | Type |
Godkända värden: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Name
Anger namnen på en eller flera egenskaper eller metoder för objektet.
Get-Member
hämtar endast de angivna egenskaperna och metoderna.
Om du använder parametern Name med parametern MemberType, Vieweller Static får Get-Member
bara de medlemmar som uppfyller kriterierna för alla parametrar.
Om du vill hämta en statisk medlem efter namn använder du parametern Static med parametern Name.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Static
Anger att den här cmdleten bara hämtar objektets statiska egenskaper och metoder. Statiska egenskaper och metoder definieras för objektklassen, inte på någon viss instans av klassen.
Om du använder parametern Static med parametrarna View eller Force ignorerar cmdleten dessa parametrar. Om du använder parametern Static med parametern MemberType hämtar Get-Member
bara de medlemmar som tillhör båda uppsättningarna.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-View
Anger att den här cmdleten endast hämtar vissa typers egenskaper och metoder. Ange ett eller flera av värdena. Standardvärdet är Anpassad, Extended.
De godtagbara värdena för den här parametern är:
- Bas. Hämtar endast de ursprungliga egenskaperna och metoderna för .NET-objektet (utan tillägg eller anpassning).
- Anpassad. Hämtar endast de egenskaper och metoder som definierats i det utökade PowerShell-typsystemet.
- Utökad. Hämtar endast de egenskaper och metoder som lades till i en
Types.ps1xml
-filer eller med hjälp av cmdletenAdd-Member
. - Alla. Hämtar medlemmarna i vyerna Base, Adapted och Extended.
Parametern View avgör vilka medlemmar som hämtats, inte bara visningen av dessa medlemmar.
Om du vill hämta vissa medlemstyper, till exempel skriptegenskaper, använder du parametern MemberType. Om du använder parametrarna MemberType och View i samma kommando hämtar Get-Member
de medlemmar som tillhör båda uppsättningarna. Om du använder parametrarna Static och View i samma kommando ignoreras parametern View.
Typ: | PSMemberViewTypes |
Godkända värden: | Extended, Adapted, Base, All |
Position: | Named |
Standardvärde: | Adapted, Extended |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka valfritt objekt till den här cmdleten.
Utdata
Den här cmdleten returnerar en MemberDefinition- för varje egenskap eller metod som den hämtar.
Kommentarer
PowerShell innehåller följande alias för Get-Member
:
- Alla plattformar:
gm
Du kan hämta information om ett samlingsobjekt antingen med hjälp av parametern InputObject eller genom att skicka ett Get-Member
.
Du kan använda den $This
automatiska variabeln i skriptblock som definierar värdena för nya egenskaper och metoder. Variabeln $This
refererar till instansen av det objekt som egenskaperna och metoderna läggs till i. Mer information om variabeln $This
finns i about_Automatic_Variables.
Om du skickar ett objekt som representerar en typ, till exempel en typliteral, till exempel [int]
, Get-Member
returnera information om [System.RuntimeType]
typen. Men när du använder parametern Static returnerar Get-Member
de statiska medlemmarna av den specifika typ som representeras av System.RuntimeType
-instansen.