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 Get-Member
cmdlet 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, usano il parametro Static . Per ottenere solo determinati tipi di membri, ad esempio NoteProperties, usare il parametro MemberType .
Get-Member
restituisce un elenco di membri ordinati alfabeticamente. 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 Get-Service
cmdlet .
Poiché la Get-Member
parte del comando non ha 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 Get-Service
cmdlet, inclusi i membri intrinseci, ad esempio PSBase, PSObject e i metodi get_ e set_.
Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase
Il Get-Member
comando usa il parametro Force per aggiungere i membri intrinseci e i membri generati dal compilatore degli oggetti alla visualizzazione. È possibile usare questi metodi e queste proprietà come si userebbe un metodo adattato dell'oggetto. Il secondo comando mostra come visualizzare il valore della proprietà PSBase del servizio Pianificazione. Per altre informazioni sui membri intrinseci, vedere about_Intrinsic_Members
Esempio 3: Ottenere membri estesi degli oggetti servizio
Questo esempio ottiene i metodi e le proprietà degli oggetti servizio estesi usando un Types.ps1xml
file o il 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();
Il Get-Member
comando usa il parametro View per ottenere solo i membri estesi degli oggetti del servizio. In questo caso, il membro esteso è la proprietà Name , ovvero una proprietà alias della proprietà ServiceName .
Esempio 4: Ottenere le proprietà dello script degli oggetti del log eventi
In questo esempio vengono recuperate le proprietà dello script degli oggetti del log eventi nel log di sistema in 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 ottiene solo gli oggetti con un valore di NoteProperty
per la proprietà MemberType .
Il comando restituisce la proprietà Message dell'oggetto EventLogRecord .
Esempio 5: Ottenere oggetti con una proprietà specificata
In questo esempio vengono restituiti oggetti con una proprietà MachineName nell'output da un elenco di cmdlet.
La $list
variabile contiene un elenco di cmdlet da valutare. L'istruzione foreach
richiama ogni comando e invia i risultati a Get-Member
. Il parametro Name limita i risultati da Get-Member
a membri con il nome 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;}
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 , la matrice viene considerata come un singolo oggetto.
$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 $array
variabile contiene un oggetto Int32 e un oggetto stringa , come illustrato quando la matrice viene inviata tramite pipe a Get-Member
. Quando $array
viene passato usando il parametro Get-Member
InputObject restituisce i membri del tipo Object[].
Esempio 7: Determinare le proprietà dell'oggetto che è possibile impostare
Questo esempio mostra 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 membro intrinseco 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
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
: le proprietà e i metodi definiti nel sistema di tipi estesi di PowerShell.PSExtended
: proprietà e metodi aggiunti neiTypes.ps1xml
file o tramite ilAdd-Member
cmdlet .PSObject
: 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 neiFormat.ps1xml
file 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 ad eccezione di Base e Adattato, 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 di cui vengono recuperati i membri.
L'uso del parametro InputObject non equivale al piping di un oggetto a 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 della raccolta, 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 validi 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.
No 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 con i parametri Static o View , Get-Member
ottiene i membri che appartengono a entrambi i set.
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 con il parametro MemberType, View o Static , Get-Member
ottiene solo i membri che soddisfano i criteri di tutti i parametri.
Per ottenere un membro statico per nome, usare il parametro Static con il parametro Name .
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 . Proprietà e metodi statici sono definiti nella classe di oggetti, non in una particolare istanza della classe.
Se si usa il parametro Static con i parametri View o Force , il cmdlet ignora tali parametri. Se si utilizza il parametro Static con il parametro MemberType , Get-Member
ottiene solo i membri che appartengono a entrambi i set.
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 è Adattato, Esteso.
I valori validi 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
Types.ps1xml
file o tramite ilAdd-Member
cmdlet . - Tutti. ottiene i membri nelle visualizzazioni Base, Adapted ed Extended.
Il parametro View determina i membri recuperati, non solo la visualizzazione di tali membri.
Per ottenere tipi di membri specifici, ad esempio le proprietà dello script, usare il parametro MemberType . Se si usano i parametri MemberType e View nello stesso comando, Get-Member
ottiene i membri che appartengono a entrambi i set. Se si usano i parametri Static e View nello stesso comando, il parametro View viene ignorato.
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, a Get-Member
.
È possibile usare la $This
variabile automatica nei blocchi di script che definiscono i valori di nuove proprietà e metodi. La $This
variabile fa riferimento all'istanza dell'oggetto a cui vengono aggiunte le proprietà e i metodi. Per altre informazioni sulla $This
variabile, 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
restituiscono informazioni sul [System.RuntimeType]
tipo. Tuttavia, quando si utilizza il parametro Static , Get-Member
restituisce i membri statici del tipo specifico rappresentato dall'istanza System.RuntimeType
di .