Dela via


Get-Member

Hämtar egenskaper och metoder för objekt.

Syntax

Get-Member
   [-InputObject <PSObject>]
   [[-Name] <String[]>]
   [-MemberType <PSMemberTypes>]
   [-View <PSMemberViewTypes>]
   [-Static]
   [-Force]
   [<CommonParameters>]

Description

Cmdleten Get-Member hämtar objektens medlemmar, egenskaper och metoder.

Om du vill ange objektet använder du parametern InputObject eller skicka ett -objekt till Get-Member. För att få information om statiska medlemmar använder medlemmarna i klassen, inte instansen, parametern Static . Om du bara vill hämta vissa typer av medlemmar, till exempel NoteProperties, använder du parametern MemberType .

Get-Member returnerar en lista med medlemmar som sorteras alfabetiskt. Metoderna visas först, följt av egenskaperna.

Exempel

Exempel 1: Hämta medlemmarna i processobjekt

Det här kommandot visar egenskaperna och metoderna för de tjänstobjekt som genereras av cmdleten Get-Service .

Eftersom delen Get-Member av kommandot inte har några parametrar används standardvärden för parametrarna. Som standard Get-Member får inte statiska eller inbyggda medlemmar.

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();

Exempel 2: Hämta medlemmar av tjänstobjekt

Det här exemplet hämtar alla medlemmar (egenskaper och metoder) för tjänstobjekt som hämtats av cmdleten Get-Service , inklusive de inbyggda medlemmarna, till exempel PSBase, PSObject och metoderna get_ och set_ .

Get-Service | Get-Member -Force
(Get-Service Schedule).PSBase

Kommandot Get-Member använder parametern Force för att lägga till de inbyggda medlemmarna och de kompilatorgenererade medlemmarna i objekten till visningen. Du kan använda dessa egenskaper och metoder på samma sätt som du använder en anpassad metod för objektet. Det andra kommandot visar hur du visar värdet för PSBase-egenskapen för schedule-tjänsten. Mer information om inbyggda medlemmar finns i about_Intrinsic_Members

Exempel 3: Hämta utökade medlemmar i tjänstobjekt

Det här exemplet hämtar metoderna och egenskaperna för tjänstobjekt som har utökats med hjälp av en Types.ps1xml fil eller 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();

Kommandot Get-Member använder parametern Visa för att endast hämta utökade medlemmar i tjänstobjekten. I det här fallet är den utökade medlemmen egenskapen Name , som är en aliasegenskap för egenskapen ServiceName .

Exempel 4: Hämta skriptegenskaper för händelseloggobjekt

Det här exemplet hämtar skriptegenskaperna för händelseloggobjekt i systemloggen i Loggboken.

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

Parametern MemberType hämtar endast objekt med värdet NoteProperty för egenskapen MemberType .

Kommandot returnerar egenskapen Message för objektet EventLogRecord .

Exempel 5: Hämta objekt med en angiven egenskap

Det här exemplet hämtar objekt som har en MachineName-egenskap i utdata från en lista med cmdletar.

Variabeln $list innehåller en lista över cmdletar som ska utvärderas. Instruktionen foreach anropar varje kommando och skickar resultatet till Get-Member. Parametern Namn begränsar resultatet från Get-Member till medlemmar som har namnet 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;}

Resultatet visar att endast processobjekt och tjänstobjekt har egenskapen MachineName .

Exempel 6: Hämta medlemmar för en matris

Det här exemplet visar hur du hittar medlemmarna i en matris med objekt. När du skickar och matrisen med objekt till Get-Memberreturnerar cmdleten en medlemslista för varje unik objekttyp i matrisen. Om du skickar matrisen med parametern InputObject behandlas matrisen som ett enda objekt.

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

Variabeln $array innehåller ett Int32-objekt och ett strängobjekt , vilket visas när matrisen skickas till Get-Member. När $array skickas med parametern InputObjectGet-Member returneras medlemmarna av typen Object[].

Exempel 7: Fastställ vilka objektegenskaper du kan ange

Det här exemplet visar hur du avgör vilka egenskaper för ett objekt som kan ändras.

$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

Exempel 8: Ange egenskaperna för ett objekt i den ordning de skapades

Det här exemplet skapar ett nytt PSObject och lägger till egenskaper i det. Get-Member visar egenskaperna i alfabetisk ordning. Om du vill se egenskaperna i den ordning de lades till i objektet måste du använda den inbyggda PSObject-medlemmen .

$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

Parametrar

-Force

Lägger till de inbyggda medlemmarna och de kompilatorgenererade get_ - och set_ -metoderna i visningen. I följande lista beskrivs de egenskaper som läggs till när du använder force-parametern:

  • PSBase: De ursprungliga egenskaperna för .NET-objektet utan tillägg eller anpassning. Det här är egenskaperna som definierats för objektklassen.
  • PSAdapted: De egenskaper och metoder som definierats i det utökade PowerShell-typsystemet.
  • PSExtended: De egenskaper och metoder som har lagts till i Types.ps1xml filerna eller med hjälp av cmdleten Add-Member .
  • PSObject: Adaptern som konverterar basobjektet till ett PowerShell PSObject-objekt .
  • PSTypeNames: En lista över objekttyper som beskriver objektet i specificitetsordning. När du formaterar objektet söker PowerShell efter typerna Format.ps1xml i filerna i PowerShell-installationskatalogen ($PSHOME). Den använder formateringsdefinitionen för den första typen som hittas.

Som standard Get-Member hämtar de här egenskaperna i alla vyer utom Base och Anpassat, men visar dem inte.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Anger det objekt vars medlemmar hämtas.

Att använda parametern InputObject är inte samma sak som att skicka ett -objekt till Get-Member. Skillnader:

  • När du skickar en samling objekt till Get-MemberGet-Member hämtar medlemmarna i de enskilda objekten i samlingen, till exempel egenskaperna för varje sträng i en matris med strängar.
  • När du använder InputObject för att skicka en samling objekt Get-Member hämtar medlemmarna i samlingen, till exempel egenskaperna för matrisen i en matris med strängar.
Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MemberType

Anger den medlemstyp som denna cmdlet hämtar. Standardvärdet är All.

De acceptabla värdena för den här parametern är:

  • AliasProperty
  • CodeProperty
  • Property
  • NoteProperty
  • ScriptProperty
  • Properties
  • PropertySet
  • Method
  • CodeMethod
  • ScriptMethod
  • Methods
  • ParameterizedProperty
  • MemberSet
  • Event
  • Dynamic
  • All

Dessa värden definieras som en flaggbaserad uppräkning. Du kan kombinera flera värden för att ange flera flaggor med hjälp av den här parametern. Värdena kan skickas till parametern MemberType som en matris med värden eller som en kommaavgränsad sträng med dessa värden. Cmdleten kombinerar värdena med hjälp av en binär-OR-åtgärd. Att skicka värden som en matris är det enklaste alternativet och du kan också använda tabbifyllning för värdena.

Information om dessa värden finns i PSMemberTypes Enumeration.

Alla objekt har inte alla typer av medlemmar. Om du anger en medlemstyp som objektet inte har returnerar PowerShell ett null-värde. Om du vill hämta relaterade typer av medlemmar, till exempel alla utökade medlemmar, använder du parametern Visa . Om du använder parametern MemberType med parametrarna Get-MemberStatic eller View hämtar du de medlemmar som tillhör båda uppsättningarna.

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

Anger namnen på en eller flera egenskaper eller metoder för objektet. Get-Member hämtar endast de angivna egenskaperna och metoderna.

Om du använder parametern Namn med parametern MemberType, View eller Static får Get-Member du bara de medlemmar som uppfyller kriterierna för alla parametrar.

Om du vill hämta en statisk medlem efter namn använder du parametern Static med parametern Namn .

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Static

Anger att denna cmdlet endast hämtar objektets statiska egenskaper och metoder. Statiska egenskaper och metoder definieras för objektklassen, inte på någon viss instans av klassen.

Om du använder parametern Static med parametrarna View (Visa ) eller Force (Framtvinga ) ignorerar cmdleten dessa parametrar. Om du använder parametern Static med parametern Get-MemberMemberType hämtar endast de medlemmar som tillhör båda uppsättningarna.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-View

Anger att denna cmdlet endast hämtar vissa typer av egenskaper och metoder. Ange ett eller flera av värdena. Standardvärdet är Anpassad, Utökad.

De acceptabla värdena för den här parametern är:

  • Base. Hämtar endast de ursprungliga egenskaperna och metoderna för .NET-objektet (utan tillägg eller anpassning).
  • Anpassade. Hämtar endast de egenskaper och metoder som definierats i det utökade PowerShell-typsystemet.
  • Utökad. Hämtar endast de egenskaper och metoder som har lagts till i en Types.ps1xml fil eller med hjälp av cmdleten Add-Member .
  • Alla. Hämtar medlemmarna i vyerna Bas, Anpassad och Utökad.

Parametern Visa avgör vilka medlemmar som hämtats, inte bara visningen av dessa medlemmar.

Om du vill hämta vissa medlemstyper, till exempel skriptegenskaper, använder du parametern MemberType . Om du använder parametrarna MemberType och View i samma kommando Get-Member hämtar de medlemmar som tillhör båda uppsättningarna. Om du använder parametrarna Static och View i samma kommando ignoreras view-parametern.

Type:PSMemberViewTypes
Accepted values:Extended, Adapted, Base, All
Position:Named
Default value:Adapted, Extended
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

PSObject

Du kan skicka valfritt objekt till den här cmdleten.

Utdata

MemberDefinition

Den här cmdleten returnerar en MemberDefinition för varje egenskap eller metod som den hämtar.

Kommentarer

PowerShell innehåller följande alias för Get-Member:

  • Alla plattformar:
    • gm

Du kan hämta information om ett samlingsobjekt antingen med hjälp av parametern InputObject eller genom att skicka objektet som föregås av ett kommatecken till Get-Member.

Du kan använda den $This automatiska variabeln i skriptblock som definierar värdena för nya egenskaper och metoder. Variabeln $This refererar till instansen av objektet som egenskaperna och metoderna läggs till i. Mer information om variabeln finns i $Thisabout_Automatic_Variables.

Om du skickar ett objekt som representerar en typ, till exempel en typliteral som [int], Get-Member returnerar du information om [System.RuntimeType] typen. När du använder parametern Get-MemberStatic returneras dock de statiska medlemmarna av den specifika typ som representeras av instansenSystem.RuntimeType.