Condividi tramite


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 . 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 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à 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 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à 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 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 valore 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 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 limita i risultati di ai 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 variabile $array contiene un oggetto Int32 e un oggetto stringa , come illustrato quando la matrice viene inviata tramite pipe a Get-Member. Quando viene passato utilizzando il parametro inputObject restituisce i membri del tipo Object[] .

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 di Types.ps1xml o tramite il cmdlet Add-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 file Format.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 con i parametri statici o View, ottiene i membri appartenenti 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 parametroMemberType , Viewo parametro static, ottiene solo i membri che soddisfano i criteri di tutti i parametri.

Per ottenere un membro statico in base al 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 . 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 , ottiene solo i membri appartenenti 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 è 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 cmdlet Add-Member.
  • Tutto. Ottiene i membri nelle visualizzazioni Base, Adattata ed Estesa.

Il parametro view determina i membri recuperati, non solo la visualizzazione di tali membri.

Per ottenere tipi di membro 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 appartenenti a entrambi i set. Se si usano i parametri statici statici e visualizzazione 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

PSObject

È possibile inviare tramite pipe qualsiasi oggetto 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, 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 , restituisce i membri statici del tipo specifico rappresentato dall'istanza di .