Get-Member
Ottiene le proprietà e i metodi degli oggetti .
Sintassi
Get-Member
[-InputObject <PSObject>]
[[-Name] <String[]>]
[-MemberType <PSMemberTypes>]
[-View <PSMemberViewTypes>]
[-Static]
[-Force]
[<CommonParameters>]
Descrizione
Il cmdlet Get-Member
ottiene i membri, le proprietà e i metodi degli oggetti .
Per specificare l'oggetto, utilizzare il parametro InputObject o inviare tramite pipe un oggetto a Get-Member
. Per ottenere informazioni sui membri statici, i membri della classe, non dell'istanza, utilizzare il parametro statico
Get-Member
restituisce un elenco di membri ordinati in ordine alfabetico. I metodi vengono elencati per primi, seguiti dalle proprietà .
Esempio
Esempio 1: Ottenere i membri degli oggetti processo
Questo comando visualizza le proprietà e i metodi degli oggetti del servizio generati dal cmdlet Get-Service
.
Poiché la parte Get-Member
del comando non include parametri, usa i valori predefiniti per i parametri. Per impostazione predefinita, Get-Member
non ottiene membri statici o intrinseci.
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();
Esempio 2: Ottenere membri degli oggetti servizio
In questo esempio vengono recuperati tutti i membri (proprietà e metodi) degli oggetti servizio recuperati dal cmdlet Get-Service
, inclusi i membri intrinseci, ad esempio PSBase, PSObjecte i metodi get_ e set_.
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Il comando Get-Member
usa il parametro Force per aggiungere i membri intrinseci e i membri generati dal compilatore degli oggetti alla visualizzazione. È possibile utilizzare queste proprietà e metodi nello stesso modo in cui si userebbe un metodo adattato dell'oggetto. Il secondo comando mostra come visualizzare il valore della proprietà
Esempio 3: Ottenere membri estesi degli oggetti servizio
Questo esempio ottiene i metodi e le proprietà degli oggetti servizio estesi usando un file Types.ps1xml
o il 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();
Il comando Get-Member
usa il parametro View per ottenere solo i membri estesi degli oggetti del servizio. In questo caso, il membro esteso è la proprietà
Esempio 4: Ottenere le proprietà dello script degli oggetti del log eventi
In questo esempio vengono recuperate le proprietà dello script degli oggetti del registro eventi nel registro di sistema nel Visualizzatore eventi.
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 ...
Il parametro MemberType
Il comando restituisce la proprietà message
Esempio 5: Ottenere oggetti con una proprietà specificata
Questo esempio ottiene oggetti con una proprietà MachineName nell'output da un elenco di cmdlet.
La variabile $list
contiene un elenco di cmdlet da valutare. L'istruzione foreach
richiama ogni comando e invia i risultati a Get-Member
. Il parametro Name
$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;}
I risultati mostrano che solo gli oggetti processo e gli oggetti servizio hanno una proprietà MachineName.
Esempio 6: Ottenere membri per una matrice
In questo esempio viene illustrato come trovare i membri di una matrice di oggetti. Quando si invia tramite pipe e la matrice di oggetti a Get-Member
, il cmdlet restituisce un elenco di membri per ogni tipo di oggetto univoco nella matrice.
Se si passa la matrice usando il parametro 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...
...
La variabile $array
contiene un oggetto Int32 e un oggetto stringa , come illustrato quando la matrice viene inviata tramite pipe a Get-Member
. Quando
Esempio 7: Determinare le proprietà dell'oggetto che è possibile impostare
In questo esempio viene illustrato come determinare quali proprietà di un oggetto possono essere modificate.
$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
Esempio 8: Elencare le proprietà di un oggetto nell'ordine in cui sono stati creati
In questo esempio viene creato un nuovo PSObject e vengono aggiunte proprietà.
Get-Member
elenca le proprietà in ordine alfabetico. Per visualizzare le proprietà nell'ordine in cui sono state aggiunte all'oggetto è necessario utilizzare il PSObject membro intrinseco.
$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
Parametri
-Force
Aggiunge i membri intrinseci e i metodi get_ generati dal compilatore e set_ alla visualizzazione. Nell'elenco seguente vengono descritte le proprietà aggiunte quando si usa il parametro Force:
-
PSBase
: proprietà originali dell'oggetto .NET senza estensione o adattamento. Queste sono le proprietà definite per la classe oggetto. -
PSAdapted
: proprietà e metodi definiti nel sistema di tipi estesi di PowerShell. -
PSExtended
: proprietà e metodi aggiunti nei file diTypes.ps1xml
o tramite il cmdletAdd-Member
. : adattatore che converte l'oggetto di base in un oggetto PSObject di PowerShell . -
PSTypeNames
: elenco di tipi di oggetto che descrivono l'oggetto, in ordine di specificità. Quando si formatta l'oggetto, PowerShell cerca i tipi nei fileFormat.ps1xml
nella directory di installazione di PowerShell ($PSHOME
). Usa la definizione di formattazione per il primo tipo trovato.
Per impostazione predefinita, Get-Member
ottiene queste proprietà in tutte le visualizzazioni tranne base e Adattata, ma non le visualizza.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specifica l'oggetto i cui membri vengono recuperati.
L'uso del parametro InputObject non equivale al piping di un oggetto per Get-Member
. Le differenze sono le seguenti:
- Quando si invia tramite pipe una raccolta di oggetti a
Get-Member
,Get-Member
ottiene i membri dei singoli oggetti nell'insieme, ad esempio le proprietà di ogni stringa in una matrice di stringhe. - Quando si utilizza InputObject per inviare una raccolta di oggetti,
Get-Member
ottiene i membri dell'insieme, ad esempio le proprietà della matrice in una matrice di stringhe.
Tipo: | PSObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-MemberType
Specifica il tipo di membro che ottiene questo cmdlet. Il valore predefinito è All
.
I valori accettabili per questo parametro sono:
AliasProperty
CodeProperty
Property
NoteProperty
ScriptProperty
Properties
PropertySet
Method
CodeMethod
ScriptMethod
Methods
ParameterizedProperty
MemberSet
Event
Dynamic
All
Questi valori sono definiti come enumerazione basata su flag. È possibile combinare più valori per impostare più flag usando questo parametro. I valori possono essere passati al parametro MemberType come matrice di valori o come stringa delimitata da virgole di tali valori. Il cmdlet combina i valori usando un'operazione binary-OR. Il passaggio di valori come matrice è l'opzione più semplice e consente anche di usare il completamento tramite tabulazione sui valori.
Per informazioni su questi valori, vedere 'enumerazione PSMemberTypes.
Non tutti gli oggetti hanno ogni tipo di membro. Se si specifica un tipo di membro che l'oggetto non ha, PowerShell restituisce un valore Null. Per ottenere tipi correlati di membri, ad esempio tutti i membri estesi, usare il parametro View. Se si utilizza il parametro MemberType
Tipo: | PSMemberTypes |
Alias: | Type |
Valori accettati: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Name
Specifica i nomi di una o più proprietà o metodi dell'oggetto.
Get-Member
ottiene solo le proprietà e i metodi specificati.
Se si utilizza il parametro Name
Per ottenere un membro statico in base al nome, usare il parametro
Tipo: | String[] |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Static
Indica che questo cmdlet ottiene solo le proprietà statiche e i metodi dell'oggetto . Le proprietà e i metodi statici vengono definiti nella classe di oggetti, non in una particolare istanza della classe .
Se si usa il parametro static
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-View
Specifica che questo cmdlet ottiene solo proprietà e metodi specifici dei tipi. Specificare uno o più valori. Il valore predefinito è Adattata, extended.
I valori accettabili per questo parametro sono:
- Base. Ottiene solo le proprietà e i metodi originali dell'oggetto .NET (senza estensione o adattamento).
- Adattato. Ottiene solo le proprietà e i metodi definiti nel sistema di tipi estesi di PowerShell.
- Esteso. Ottiene solo le proprietà e i metodi aggiunti in un file
Types.ps1xml
o tramite il cmdletAdd-Member
. - Tutto. Ottiene i membri nelle visualizzazioni Base, Adattata ed Estesa.
Il parametro view
Per ottenere tipi di membro specifici, ad esempio le proprietà dello script, usare il parametro MemberType Get-Member
ottiene i membri appartenenti a entrambi i set. Se si usano i parametri
Tipo: | PSMemberViewTypes |
Valori accettati: | Extended, Adapted, Base, All |
Posizione: | Named |
Valore predefinito: | Adapted, Extended |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe qualsiasi oggetto a questo cmdlet.
Output
Questo cmdlet restituisce un MemberDefinition per ogni proprietà o metodo che ottiene.
Note
PowerShell include gli alias seguenti per Get-Member
:
- Tutte le piattaforme:
gm
È possibile ottenere informazioni su un oggetto raccolta usando il parametro InputObject o inviando tramite pipe l'oggetto, preceduto da una virgola, per Get-Member
.
È possibile usare la variabile automatica $This
nei blocchi di script che definiscono i valori di nuove proprietà e metodi. La variabile $This
fa riferimento all'istanza dell'oggetto a cui vengono aggiunte le proprietà e i metodi. Per altre informazioni sulla variabile $This
, vedere about_Automatic_Variables.
Se si passa un oggetto che rappresenta un tipo , ad esempio un valore letterale di tipo, ad esempio [int]
, Get-Member
restituire informazioni sul tipo di [System.RuntimeType]
. Tuttavia, quando si usa il parametro statico