Dela via


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 den här cmdleten 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 parametern Query anges kör cmdleten en WMI-frågespråksinstrukering (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, som lägger till egenskapen PSComputerName till standardutdata. PSComputerName är ett alias för egenskapen __Server för de objekt som Get-WmiObject returnerar. 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-klassen 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

Not

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.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 på en fjärrdator 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 jobb-cmdletarna. Använd cmdleten Receive-Job för att hämta jobbresultatet.

Not

Om du vill använda den här parametern med fjärrdatorer måste de lokala datorerna och fjärrdatorerna konfigureras för fjärrkommunikation. Dessutom måste du starta Windows PowerShell med alternativet "Kör som administratör" i Windows Vista och senare versioner av Windows. Mer information finns i about_Remote_Requirements.

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

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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: Samtal (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.)
Typ:AuthenticationLevel
Godkända värden:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Class

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

Typ:String
Alias:ClassName
Position:1
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Standardvärdet ä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 (.).

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

Typ:String[]
Alias:Cn
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Credential

Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standardvärdet är den aktuella användaren. Skriv ett användarnamn, till exempel "User01", "Domain01\User01" eller User@Contoso.com. Du kan också 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.

Typ:PSCredential
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-EnableAllPrivileges

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

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Filter

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

Viktig

Ta inte med nyckelordet Where i parameterns värde. Följande kommandon returnerar till exempel endast de logiska diskar som har en DeviceID- av "c:" 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'"

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Impersonation

Anger den personifieringsnivå som ska användas.

De godtagbara 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.
Typ:ImpersonationLevel
Godkända värden:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-List

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

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

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Locale

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

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Namespace

När den används med parametern Class anger parametern Namespace den WMI-lagringsplatsnamnrymd 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.

Typ:String
Alias:NS
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Property

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

Typ:String[]
Position:1
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Query

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

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Recurse

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

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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 .

Typ:Int32
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken: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. Annars beror det objekt som Get-WmiObject returnerar på värdet för parametern Class.

Kommentarer

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 cmdletarna Get-Member eller Format-List.