Condividi tramite


Get-Member

Ottiene le proprietà e i metodi degli oggetti.

Sintassi

Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-MemberType {<AliasProperty> | <CodeProperty> | <Property> | <NoteProperty> | <ScriptProperty> | <Properties> | <PropertySet> | <Method> | <CodeMethod> | <ScriptMethod> | <Methods> | <ParameterizedProperty> | <MemberSet> | <Event> | <All>}] [-Static] [-View {<Extended> | <Adapted> | <Base> | <All>}] [<CommonParameters>]

Descrizione

Il cmdlet Get-Member ottiene i "membri" (proprietà e metodi) degli oggetti.

Per specificare l'oggetto, utilizzare il parametro InputObject o reindirizzare un oggetto a Get-Member. Per recuperare informazioni sui membri statici (membri della classe, non dell'istanza), utilizzare il parametro Static. Per ottenere solo determinati tipi di membri, ad esempio NoteProperties, utilizzare il parametro MemberType.

Parametri

-Force

Aggiunge alla visualizzazione i membri intrinseci (PSBase, PSAdapted, PSObject, PSTypeNames) e i metodi get_ e set_ generati dal compilatore. Per impostazione predefinita, Get-Member ottiene queste proprietà in tutte le visualizzazioni diverse da "Base" e "Adapted", ma non le visualizza.

Nell'elenco seguente vengono descritte le proprietà aggiunte quando si utilizza il parametro Force:

-- PSBase: proprietà originali dell'oggetto .NET Framework senza estensione o adattamento. Si tratta delle proprietà definite per la classe di oggetti ed elencate in MSDN.

-- PSAdapted: proprietà e metodi definiti nel sistema di tipi esteso di Windows PowerShell.

-- PSExtended: proprietà e metodi aggiunti nei file Types.ps1xml o tramite il cmdlet Add-Member.

-- PSObject: adattatore che converte l'oggetto di base in un oggetto PSObject di Windows PowerShell.

-- PSTypeNames: elenco di tipi di oggetto che descrivono l'oggetto in ordine di specificità. Durante la formattazione dell'oggetto, vengono cercati i tipi nei file Format.ps1xml nella directory di installazione ($pshome) di Windows PowerShell. Viene utilizzata la definizione di formattazione per il primo tipo rilevato.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-InputObject <psobject>

Specifica l'oggetto i cui membri vengono recuperati.

L'utilizzo del parametro InputObject non corrisponde al reindirizzamento di un oggetto a Get-Member. Le differenze sono le seguenti.

-- Quando si reindirizza una raccolta di oggetti a Get-Member, Get-Member ottiene i membri dei singoli oggetti nella raccolta, ad esempio le proprietà dei valori interi in una matrice di valori interi.

-- 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 valori interi.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

true (ByValue)

Accettare caratteri jolly?

false

-MemberType <PSMemberTypes>

Ottiene solo membri con il tipo di membro specificato. Il valore predefinito è All.

I valori validi per questo parametro sono:

-- AliasProperty: proprietà che definisce un nuovo nome per una proprietà esistente.

-- CodeMethod: metodo che fa riferimento a un metodo statico di una classe .NET Framework.

-- CodeProperty: proprietà che fa riferimento a una proprietà statica di una classe .NET Framework.

-- Event: specifica che l'oggetto invia un messaggio per indicare un'azione o una modifica di stato.

-- MemberSet: raccolta predefinita di proprietà e metodi, quali PSBase, PSObject e PSTypeNames.

-- Method: metodo dell'oggetto .NET Framework sottostante.

-- NoteProperty: proprietà con un valore statico.

-- ParameterizedProperty: proprietà che accetta parametri e valori di parametro.

-- Property: proprietà dell'oggetto .NET Framework sottostante.

-- PropertySet: raccolta predefinita di proprietà dell'oggetto.

-- ScriptMethod: metodo il cui valore è l'output di uno script.

-- ScriptProperty: proprietà il cui valore è l'output di uno script.

-- All: ottiene tutti i tipi di membro.

-- Methods: ottiene tutti i tipi di metodo dell'oggetto (ad esempio Method, CodeMethod, ScriptMethod).

-- Properties: ottiene tutti i tipi di proprietà dell'oggetto (ad esempio Property, CodeProperty, AliasProperty, ScriptProperty).

Non tutti gli oggetti dispongono di ogni tipo di membro. Se si specifica un tipo di membro di cui l'oggetto non dispone, in Windows PowerShell viene restituito un valore null.

Per ottenere i tipi di membri correlati, ad esempio tutti i membri estesi, utilizzare il parametro View. Se si utilizza il parametro MemberType con i parametri Static o View, Get-Member consente di ottenere i membri che appartengono a entrambi gli insiemi.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Name <string[]>

Specifica i nomi di una o più proprietà o metodi dell'oggetto. Get-Member consente di ottenere 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 in base al nome, utilizzare il parametro Static con il parametro Name.

Obbligatorio?

false

Posizione?

1

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-Static

Ottiene solo le proprietà e i metodi statici dell'oggetto.

Le proprietà e i metodi statici sono definiti nella classe di oggetti, non in qualsiasi istanza della classe.

Se si utilizza il parametro Static con il parametro View, il secondo parametro viene ignorato. Se si utilizza il parametro Static con il parametro MemberType, Get-Member ottiene solo i membri che appartengono a entrambi i set.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-View <PSMemberViewTypes>

Ottiene solo determinati tipi di membri (proprietà e metodi). Specificare uno o più valori. Il valore predefinito è "Adapted, Extended".

I valori validi sono:

-- Base: ottiene solo i metodi e le proprietà originali dell'oggetto .NET Framework (senza estensione o adattamento).

-- Adapted: ottiene solo le proprietà e i metodi definiti nel sistema di tipi esteso di Windows PowerShell.

-- Extended: ottiene solo le proprietà e i metodi aggiunti nei file Types.ps1xml o tramite il cmdlet Add-Member.

-- All: ottiene i membri nelle visualizzazioni Base, Adapted ed Extended.

Il parametro View determina i membri recuperati, non solo la loro visualizzazione.

Per ottenere determinati tipi di membro, ad esempio le proprietà script, utilizzare il parametro MemberType. Se si utilizzano i parametri MemberType e View nello stesso comando, Get-Member ottiene i membri che appartengono a entrambi i set. Se si utilizzano i parametri Static e View nello stesso comando, il secondo parametro viene ignorato.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

System.Management.Automation.PSObject

È possibile reindirizzare qualsiasi oggetto a Get-Member.

Output

Microsoft.PowerShell.Commands.MemberDefinition

Get-Member restituisce un oggetto per ogni proprietà o metodo ottenuti.

Note

È possibile recuperare informazioni su un oggetto raccolta utilizzando il parametro InputObject o reindirizzando l'oggetto, preceduto da una virgola, a Get-Member.

Esempio 1

C:\PS>get-service | get-member


   TypeName: System.ServiceProcess.ServiceController

Name                      MemberType    Definition
----                      ----------    ----------
Name                      AliasProperty Name = ServiceName
Close                     Method        System.Void Close()
Continue                  Method        System.Void Continue()
CreateObjRef              Method        System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType)
Dispose                   Method        System.Void Dispose()
Equals                    Method        System.Boolean Equals(Object obj)
ExecuteCommand            Method        System.Void ExecuteCommand(Int32 command)
GetHashCode               Method        System.Int32 GetHashCode()
GetLifetimeService        Method        System.Object GetLifetimeService()
GetType                   Method        System.Type GetType()
InitializeLifetimeService Method        System.Object InitializeLifetimeService()
Pause                     Method        System.Void Pause()
Refresh                   Method        System.Void Refresh()
Start                     Method        System.Void Start(), System.Void Start(String[] args)
Stop                      Method        System.Void Stop()
ToString                  Method        System.String ToString()
WaitForStatus             Method        System.Void WaitForStatus(ServiceControllerStatus desiredStatus), System.Voi...
CanPauseAndContinue       Property      System.Boolean CanPauseAndContinue {get;}
CanShutdown               Property      System.Boolean CanShutdown {get;}
CanStop                   Property      System.Boolean CanStop {get;}
Container                 Property      System.ComponentModel.IContainer Container {get;}
DependentServices         Property      System.ServiceProcess.ServiceController[] DependentServices {get;}
DisplayName               Property      System.String DisplayName {get;set;}
MachineName               Property      System.String MachineName {get;set;}
ServiceHandle             Property      System.Runtime.InteropServices.SafeHandle ServiceHandle {get;}
ServiceName               Property      System.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;}
Status                    Property      System.ServiceProcess.ServiceControllerStatus Status {get;}

Descrizione
-----------
Questo comando consente di visualizzare i metodi e le proprietà degli oggetti processo (System.ServiceProcess.ServiceController) generati dal cmdlet Get-Service.

Nel comando viene utilizzato l'operatore pipeline (|) per inviare l'output di un comando Get-Service a Get-Member.

Poiché la parte Get-Member del comando non dispone di parametri, vengono utilizzati tutti i valori predefiniti. In questo modo, si ottengono tutti i tipi di membro, ma non i membri statici, e non vengono visualizzati i membri intrinseci.





Esempio 2

C:\PS>get-service | get-member -force

C:\PS> (get-service -schedule).psbase

Descrizione
-----------
In questo esempio si ottengono tutti i membri (proprietà e metodi) degli oggetti servizio (System.ServiceProcess.ServiceController) recuperati dal cmdlet Get-Service, inclusi i membri intrinseci, quali PSBase e PSObject, e i metodi get_ e set_.

Nel primo comando viene utilizzato il cmdlet Get-Service per ottenere gli oggetti che rappresentano i servizi nel sistema. Viene utilizzato un operatore pipeline (|) per passare gli oggetti servizio al cmdlet Get-Member.

Nel comando Get-Member viene utilizzato il parametro Force per aggiungere alla visualizzazione membri intrinseci e membri degli oggetti generati dal compilatore. Get-Member ottiene questi membri, ma li nasconde per impostazione predefinita.

È possibile utilizzare questi metodi e proprietà nello stesso modo in cui si utilizzerebbe un metodo adattato dell'oggetto. Nel secondo comando viene illustrato come visualizzare il valore della proprietà PSBase del servizio Schedule.





Esempio 3

C:\PS>get-service | get-member -view extended

   TypeName: System.ServiceProcess.ServiceController

Name MemberType    Definition
---- ----------    ----------
Name AliasProperty Name = ServiceName

Descrizione
-----------
Questo comando ottiene i metodi e le proprietà degli oggetti servizio estesi mediante il file Types.ps1xml o il cmdlet Add-Member. 


Il comando Get-Member utilizza il parametro View per ottenere solo i membri estesi degli oggetti servizio. In questo caso, il membro esteso è la proprietà Name, alias della proprietà ServiceName.





Esempio 4

C:\PS>get-eventlog -log system | gm -membertype scriptproperty

   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Descrizione
-----------
Con questo comando si ottengono le proprietà script di oggetti del registro eventi di sistema nel Visualizzatore eventi. In questo caso, l'unica proprietà script è EventID.





Esempio 5

C:\PS>get-eventlog -log system | get-member -membertype scriptproperty


   TypeName: System.Diagnostics.EventLogEntry

Name    MemberType     Definition
----    ----------     ----------
EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;}

Descrizione
-----------
Con questo comando si ottengono le proprietà script di oggetti del registro eventi di sistema nel Visualizzatore eventi. 

Nel comando viene utilizzato il parametro MemberType per ottenere solo gli oggetti con valore AliasProperty per la proprietà MemberType.

Viene restituita la proprietà EventID dell'oggetto EventLog.





Esempio 6

C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get-executionpolicy"

C:\PS> foreach ($cmdlet in $a) {invoke-expression $cmdlet | get-member -name machinename}

TypeName: System.Diagnostics.Process

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;}


   TypeName: System.ServiceProcess.ServiceController

Name        MemberType Definition
----        ---------- ----------
MachineName Property   System.String MachineName {get;set;}

Descrizione
-----------
Con questo comando si ottengono gli oggetti che dispongono di una proprietà MachineName da un elenco di cmdlet.

Il primo comando archivia i nomi di diversi cmdlet nella variabile $a.

Nel secondo comando viene utilizzata un'istruzione ForEach per richiamare ciascun comando, inviare i risultati a Get-Member e limitare i risultati di Get-Member ai membri che dispongono del nome "MachineName".

I risultati mostrano che solo gli oggetti processo (System.Diagnostics.Process) e gli oggetti servizio (System.ServiceProcess.ServiceController) dispongono di una proprietà MachineName.





Esempio 7

C:\PS>$a = get-member -inputobject @(1)

C:\PS>$a.count

1

C:\PS> $a = get-member -inputobject 1,2,3

   TypeName: System.Object[]
Name               MemberType    Definition
----               ----------    ----------
Count              AliasProperty Count = Length
Address            Method        System.Object& Address(Int32 )
Clone              Method        System.Object Clone()
...

C:\PS>$a.count
1

Descrizione
-----------
In questo esempio viene illustrato come trovare i metodi e le proprietà di una matrice di oggetti quando si dispone di un solo oggetto del tipo specificato.

Poiché l'obiettivo del comando è trovare le proprietà di una matrice, nel primo comando viene utilizzato il parametro InputObject. Viene utilizzato il simbolo della a commerciale (@) per indicare una matrice. In questo caso, la matrice contiene solo un oggetto, il valore intero 1. 

Nel terzo comando viene utilizzato il cmdlet Get-Member per ottenere le proprietà e i metodi di una matrice di valori interi, che vengono quindi salvati nella variabile $a.

Nel quarto comando viene utilizzata la proprietà Count della matrice per trovare il numero di oggetti nella variabile $a.





Vedere anche

Concetti

Add-Member
Get-Help
Get-Command
Get-PSDrive