Get-WmiObject

Hämtar instanser av WMI-klasser (Windows Management Instrumentation) eller information om tillgängliga klasser.

Syntax

Get-WmiObject
   [-Class] <String>
   [[-Property] <String[]>]
   [-Filter <String>]
   [-Amended]
   [-DirectRead]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [[-Class] <String>]
   [-Recurse]
   [-Amended]
   [-List]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-DirectRead]
   -Query <String>
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]
Get-WmiObject
   [-Amended]
   [-AsJob]
   [-Impersonation <ImpersonationLevel>]
   [-Authentication <AuthenticationLevel>]
   [-Locale <String>]
   [-EnableAllPrivileges]
   [-Authority <String>]
   [-Credential <PSCredential>]
   [-ThrottleLimit <Int32>]
   [-ComputerName <String[]>]
   [-Namespace <String>]
   [<CommonParameters>]

Description

Från och med PowerShell 3.0 har denna cmdlet ersatts av Get-CimInstance.

Cmdleten Get-WmiObject hämtar instanser av WMI-klasser eller information om tillgängliga WMI-klasser. Om du vill ange en fjärrdator använder du parametern ComputerName . Om parametern List anges hämtar cmdleten information om de WMI-klasser som är tillgängliga i ett angivet namnområde. Om frågeparametern har angetts kör cmdleten en WMI-frågespråksats (WQL).

Cmdleten Get-WmiObject använder inte Windows PowerShell-fjärrkommunikation för att utföra fjärråtgärder. Du kan använda parametern ComputerName för cmdleten Get-WmiObject även om datorn inte uppfyller kraven för Windows PowerShell-fjärrkommunikation eller inte har konfigurerats för fjärrkommunikation i Windows PowerShell.

Från och med Windows PowerShell 3.0 har egenskapen __Server för objektet som Get-WmiObject returnerar ett PSComputerName-alias . Det gör det enklare att inkludera källdatorns namn i utdata och rapporter.

Exempel

Exempel 1: Hämta processer på den lokala datorn

Det här exemplet hämtar processerna på den lokala datorn.

Get-WmiObject -Class Win32_Process

Exempel 2: Hämtar tjänster på en fjärrdator

Det här exemplet hämtar tjänsterna på en fjärrdator. Parametern ComputerName anger IP-adressen för en fjärrdator. Som standard måste det aktuella användarkontot vara medlem i gruppen Administratörer på fjärrdatorn.

Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62

Exempel 3: Hämta WMI-klasser i den lokala datorns rot- eller standardnamnområde

Det här exemplet hämtar WMI-klasserna i den lokala datorns rot- eller standardnamnområde.

Get-WmiObject -Namespace "root/default" -List

Exempel 4: Hämta en namngiven tjänst på flera datorer

Det här exemplet hämtar WinRM-tjänsten på de datorer som anges av värdet för parametern ComputerName .

Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
  Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status

PSComputerName : SERVER01
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessID      : 844
StartMode      : Auto
State          : Running
Status         : OK

PSComputerName : SERVER02
Name           : WinRM
ExitCode       : 0
Name           : WinRM
ProcessID      : 932
StartMode      : Auto
State          : Running
Status         : OK

En pipelineoperator (|) skickar utdata till cmdleten Format-List , vilket lägger till egenskapen PSComputerName i standardutdata. PSComputerName är ett alias för egenskapen __Server för de objekt som Get-WmiObject returneras. Det här aliaset introducerades i PowerShell 3.0.

Exempel 5: Stoppa en tjänst på en fjärrdator

Det här exemplet stoppar WinRM-tjänsten på en fjärrdator. Get-WmiObject hämtar instansen av WinRM-tjänstobjektet på Server01. Sedan anropas metoden StopService för Win32_Service WMI-klass på objektet.

(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()

Detta motsvarar att använda cmdleten Stop-Service .

Exempel 6: Hämta BIOS på den lokala datorn

Det här exemplet hämtar BIOS-informationen från den lokala datorn. Parametern Egenskap för cmdleten Format-List används för att visa alla egenskaper för det returnerade objektet i en lista. Som standard visas endast den delmängd av egenskaper som definierats i Types.ps1xml konfigurationsfilen.

Get-WmiObject -Class Win32_Bios | Format-List -Property *

Status                : OK
Name                  : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption               : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent         : True
__GENUS               : 2
__CLASS               : Win32_BIOS
__SUPERCLASS          : CIM_BIOSElement
__DYNASTY             : CIM_ManagedSystemElement
__RELPATH             : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT      : 27
__DERIVATION          : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER              : Server01
__NAMESPACE           : root\cimv2
__PATH                : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics   : {7, 9, 10, 11...}
BIOSVersion           : {DELL   - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber           :
CodeSet               :
CurrentLanguage       : en|US|iso8859-1
Description           : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode    :
InstallableLanguages  : 1
InstallDate           :
LanguageEdition       :
ListOfLanguages       : {en|US|iso8859-1}
Manufacturer          : Dell Inc.
OtherTargetOS         :
PrimaryBIOS           : True
ReleaseDate           : 20101103000000.000000+000
SerialNumber          : 8VDM9P1
SMBIOSBIOSVersion     : A05
SMBIOSMajorVersion    : 2
SMBIOSMinorVersion    : 6
SoftwareElementID     : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState  : 3
TargetOperatingSystem : 0
Version               : DELL   - 15
Scope                 : System.Management.ManagementScope
Path                  : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options               : System.Management.ObjectGetOptions
ClassPath             : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties            : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties      : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers            : {dynamic, Locale, provider, UUID}
Site                  :
Container             :

Exempel 7: Hämta tjänsterna på en fjärrdator

I det här exemplet används parametern Credential för cmdleten Get-WmiObject för att hämta tjänsterna på en fjärrdator. Värdet för parametern Credential är ett användarkontonamn. Användaren uppmanas att ange ett lösenord.

Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam

Kommentar

Autentiseringsuppgifter kan inte användas när du riktar in dig på den lokala datorn.

Parametrar

-Amended

Hämtar eller anger ett värde som anger om de objekt som returneras från WMI ska innehålla ändrad information. Vanligtvis är ändrad information lokal information, till exempel objekt- och egenskapsbeskrivningar, som är kopplad till WMI-objektet.

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

-AsJob

Kör kommandot som ett bakgrundsjobb. Använd den här parametern för att köra kommandon som tar lång tid att slutföra.

När du använder parametern AsJob returnerar kommandot ett objekt som representerar bakgrundsjobbet och visar sedan kommandotolken. Du kan fortsätta att arbeta i sessionen medan jobbet är klart. Om Get-WmiObject används med parametern ComputerName skapas jobbet på den lokala datorn och resultatet från fjärrdatorerna returneras automatiskt till den lokala datorn. Om du vill hantera jobbet använder du de cmdletar som innehåller substantivet Job . Använd cmdleten för att hämta jobbresultatet Receive-Job .

Mer information om Windows PowerShell-bakgrundsjobb finns i about_Jobs och about_Remote_Jobs.

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

-Authentication

Anger den autentiseringsnivå som ska användas med WMI-anslutningen. Giltiga värden är:

  • -1: Oförändrat
  • 0: Standard
  • 1: Ingen (ingen autentisering utförs.)
  • 2: Anslut (Autentisering utförs endast när klienten upprättar en relation med programmet.)
  • 3: Anrop (Autentisering utförs endast i början av varje anrop när programmet tar emot begäran.)
  • 4: Paket (Autentisering utförs på alla data som tas emot från klienten.)
  • 5: PacketIntegrity (Alla data som överförs mellan klienten och programmet autentiseras och verifieras.)
  • 6: PacketPrivacy (egenskaperna för de andra autentiseringsnivåerna används och alla data krypteras.)
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authority

Anger den utfärdare som ska användas för att autentisera WMI-anslutningen. Du kan ange standardautentisering för NTLM eller Kerberos. Om du vill använda NTLM anger du utfärdarinställningen till ntlmdomain:<DomainName>, där <DomainName> identifierar ett giltigt NTLM-domännamn. Om du vill använda Kerberos anger du kerberos:<DomainName>\<ServerName>. Du kan inte inkludera utfärdarinställningen när du ansluter till den lokala datorn.

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

-Class

Anger namnet på en WMI-klass. När den här parametern används hämtar cmdleten instanser av WMI-klassen.

Type:String
Aliases:ClassName
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Anger måldatorn för hanteringsåtgärden. Ange ett fullständigt domännamn (FQDN), ett NetBIOS-namn eller en IP-adress. När fjärrdatorn finns i en annan domän än den lokala datorn krävs det fullständigt kvalificerade domännamnet.

Standard är den lokala datorn. Om du vill ange den lokala datorn, till exempel i en lista över datornamn, använder du localhost, namnet på den lokala datorn eller en punkt (.).

När du anger en fjärrdator måste ditt aktuella konto eller det som du anger med parametern Autentiseringsuppgifter ha rätt behörighet för att få åtkomst till informationen.

Den här parametern förlitar sig inte på Windows PowerShell-fjärrkommunikation, som använder WS-Management. Du kan använda parametern Get-WmiObject ComputerName för även om datorn inte är konfigurerad för att köra fjärrkommandon för WS-Management.

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

-Credential

Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standard är den aktuella användaren. Skriv ett användarnamn, till exempel User01, Domain01\User01eller User@Contoso.com. Eller ange ett PSCredential-objekt , till exempel ett objekt som returneras av cmdleten Get-Credential . När du skriver ett användarnamn uppmanas du att ange ett lösenord. Autentiseringsuppgifter kan inte användas när du riktar in dig på den lokala datorn.

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

-DirectRead

Anger om direkt åtkomst till WMI-providern begärs för den angivna klassen utan hänsyn till basklassen eller dess härledda klasser.

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

-EnableAllPrivileges

Aktiverar alla behörigheter för den aktuella användaren innan kommandot gör WMI-anropet.

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

-Filter

Anger en Where-sats som ska användas som ett filter. Använder syntaxen för WMI-frågespråket (WQL).

Viktigt!

Ta inte med nyckelordet Where i värdet för parametern. Följande kommandon returnerar till exempel endast de logiska diskar som har ett DeviceID c: för och tjänster som har namnet "WinRM" utan att använda nyckelordet Where.

Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "

Get-WmiObject win32_service -filter "name='WinRM'"

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

-Impersonation

Anger den personifieringsnivå som ska användas.

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

  • 0: Standard. Läser det lokala registret för standard personifieringsnivån. Standardvärdet är vanligtvis inställt på Personifiera.
  • 1: Anonym. Döljer anroparens autentiseringsuppgifter.
  • 2: Identifiera. Tillåter att objekt frågar efter anroparens autentiseringsuppgifter.
  • 3: Personifiera. Tillåter att objekt använder anroparens autentiseringsuppgifter.
  • 4: Ombud. Tillåter att objekt tillåter att andra objekt använder anroparens autentiseringsuppgifter.
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-List

Hämtar namnen på WMI-klasserna i WMI-lagringsplatsens namnområde som anges av parametern Namnområde .

Om du anger parametern List , men inte parametern Namespace , Get-WmiObject använder du namnområdet Root\Cimv2 som standard. Den här cmdleten använder inte registerposten Standardnamnområde i registernyckeln HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting för att fastställa standardnamnområdet.

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

-Locale

Anger önskat språk för WMI-objekt. Ange ett värde i MS_<LCID> format.

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

-Namespace

När den används med parametern Klass anger parametern Namnområde det WMI-lagringsplatsnamnområde där den angivna WMI-klassen finns. När den används med parametern List anger den det namnområde som WMI-klassinformation ska samlas in från.

Type:String
Aliases:NS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Property

Anger de WMI-klassegenskaper som den här cmdleten hämtar information från. Ange egenskapsnamnen.

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

-Query

Kör den angivna WMI Query Language-instruktionen (WQL). Den här parametern stöder inte händelsefrågor.

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

-Recurse

Söker i det aktuella namnområdet och alla andra namnområden efter det klassnamn som anges av parametern Klass .

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

-ThrottleLimit

Anger det maximala antalet WMI-åtgärder som kan köras samtidigt. Den här parametern är endast giltig när parametern AsJob används i kommandot .

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

Indata

None

Du kan inte skicka indata till Get-WmiObject.

Utdata

PSObject or System.Management.Automation.RemotingJob

När du använder parametern AsJob returnerar cmdleten ett jobbobjekt. I annat fall beror det objekt som Get-WmiObject returnerar på värdet för parametern Klass .

Kommentarer

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

  • gwmi

För att få åtkomst till WMI-information på en fjärrdator måste cmdleten köras under ett konto som är medlem i den lokala administratörsgruppen på fjärrdatorn. Eller så kan standardåtkomstkontrollen på WMI-namnområdet för fjärrlagringsplatsen ändras för att ge åtkomstbehörighet till andra konton.

Endast vissa av egenskaperna för varje WMI-klass visas som standard. Den uppsättning egenskaper som visas för varje WMI-klass anges i konfigurationsfilen Types.ps1xml . Om du vill hämta alla egenskaper för ett WMI-objekt använder du Get-Member cmdletarna eller Format-List .