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 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-MemberInputObject 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 nei Types.ps1xml file o usando il Add-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 nella Format.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 il Add-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

PSObject

È possibile eseguire la pipe di qualsiasi oggetto a questo cmdlet.

Output

MemberDefinition

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.