Condividi tramite


Get-Member

Ottiene le proprietà e i metodi degli oggetti .

Sintassi

Default (impostazione predefinita).

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, utilizzare il parametro Static per i membri della classe, non per l'istanza. Per ottenere solo determinati tipi di membri, ad esempio NoteProperties, utilizzare 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 i 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 utilizzare queste proprietà e questi metodi nello stesso modo in cui si utilizzerebbe 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 di 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 registro 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 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 i 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-MemberInputObject restituisce i membri del tipo Object[].

Esempio 7: Determinare quali proprietà dell'oggetto è 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 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à che vengono aggiunte quando si utilizza 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 nei Types.ps1xml file o tramite il Add-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 nei Format.ps1xml file nella directory di installazione di PowerShell ($PSHOME). Utilizza 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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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.

Proprietà dei parametri

Tipo:PSObject
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-MemberType

Specifica il tipo di membro ottenuto da 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 un'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 array è l'opzione più semplice e consente anche di usare il completamento automatico con il tasto tab 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 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 ottiene i membri che appartengono a entrambi i set.

Proprietà dei parametri

Tipo:PSMemberTypes
Valore predefinito:None
Valori accettati:AliasProperty, CodeProperty, Property, NoteProperty, ScriptProperty, Properties, PropertySet, Method, CodeMethod, ScriptMethod, Methods, ParameterizedProperty, MemberSet, Event, Dynamic, All
Supporta i caratteri jolly:False
DontShow:False
Alias:TIPO

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 in base al nome, utilizzare il parametro Static con il parametro Name .

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:0
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti: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 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.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-View

Specifica che questo cmdlet ottiene solo tipi, proprietà e metodi specifici. Specificare uno o più valori. Il valore predefinito è Adattato, Esteso.

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 Types.ps1xml file o tramite il Add-Member cmdlet .
  • Tutti. Ottiene i membri nelle viste Base, Adattato ed Esteso.

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, utilizzare 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 utilizzano i parametri Static e View nello stesso comando, il parametro View viene ignorato.

Proprietà dei parametri

Tipo:PSMemberViewTypes
Valore predefinito:Adapted, Extended
Valori accettati:Extended, Adapted, Base, All
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

PSObject

È possibile passare qualsiasi oggetto come input a questo cmdlet.

Output

MemberDefinition

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