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 di oggetti.
Per specificare l'oggetto, usare il parametro InputObject o la pipe di un oggetto su 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 in ordine alfabetico. I metodi sono elencati prima, seguiti dalle proprietà.
Esempio
Esempio 1: Ottenere i membri degli oggetti di elaborazione
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 dispone di 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 di servizio
In questo esempio vengono recuperati tutti i membri (proprietà e metodi) degli oggetti di 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 di servizio
Questo esempio ottiene i metodi e le proprietà degli oggetti di 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 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
Questo esempio ottiene 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 elaborare oggetti e oggetti di 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 esegue la pipe e la matrice di oggetti in 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 sottoposta a pipe su Get-Member
. Quando $array
viene passato usando il parametro Get-Member
InputObject restituisce i membri del tipo Object[].
Esempio 7: Determinare quali proprietà dell'oggetto è 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 di creazione
In questo esempio viene creato un nuovo PSObject e vengono aggiunte le proprietà. Get-Member
elenca le proprietà in ordine alfabetico. Per visualizzare le proprietà nell'ordine in cui sono stati aggiunti all'oggetto è necessario usare 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 di 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
: le proprietà e i metodi aggiunti neiTypes.ps1xml
file o usando ilAdd-Member
cmdlet.PSObject
: adattatore che converte l'oggetto 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 file nellaFormat.ps1xml
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 Adatta, ma non le visualizza.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Specifica l'oggetto di cui vengono recuperati i membri.
L'uso del parametro InputObject non è uguale al piping di un oggetto in Get-Member
. Le differenze sono le seguenti:
- Quando si esegue la pipe di un insieme di oggetti in
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 usa InputObject per inviare una raccolta di oggetti, ottiene i membri dell'insieme,
Get-Member
ad esempio le proprietà della matrice in una matrice di stringhe.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | 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 della scheda 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 i tipi di membri correlati, ad esempio tutti i membri estesi, usare il parametro View. Se si usa il parametro MemberType con i parametri Static o View , Get-Member
ottiene i membri che appartengono a entrambi i set.
Type: | PSMemberTypes |
Aliases: | Type |
Accepted values: | AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 usa 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 .
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Static
Indica che questo cmdlet ottiene solo le proprietà e i metodi statici 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 usa il parametro Static con il parametro MemberType , Get-Member
ottiene solo i membri che appartengono a entrambi i set.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-View
Specifica che questo cmdlet ottiene solo proprietà e metodi specifici. Specificare uno o più valori. L'impostazione predefinita è Adattata, Estesa.
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 usando 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 Statici e Visualizza nello stesso comando, il parametro View viene ignorato.
Type: | PSMemberViewTypes |
Accepted values: | Extended, Adapted, Base, All |
Position: | Named |
Default value: | Adapted, Extended |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
È possibile eseguire la pipe di qualsiasi oggetto a questo cmdlet.
Output
Questo cmdlet restituisce un Oggetto 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 eseguendo il piping dell'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 [int]
un valore letterale di tipo, come , Get-Member
restituire informazioni sul [System.RuntimeType]
tipo. Tuttavia, quando si usa il parametro Static, Get-Member
restituisce i membri statici del tipo specifico rappresentato dall'istanzaSystem.RuntimeType
.