Invoke-WmiMethod
Anropar WMI-metoder.
Syntax
Invoke-WmiMethod
[-Class] <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-InputObject <ManagementObject>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-ThrottleLimit <Int32>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
-Path <String>
[-Name] <String>
[-ArgumentList <Object[]>]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-WmiMethod
[-Name] <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdleten Invoke-WmiMethod
anropar metoderna för WMI-objekt (Windows Management Instrumentation).
Nya CIM-cmdletar (Common Information Model), som introducerades i Windows PowerShell 3.0, utför samma uppgifter som WMI-cmdletarna. CIM-cmdletarna följer WS-Management-standarder (WSMan) och CIM-standarden, vilket gör att cmdletarna kan använda samma tekniker för att hantera Windows-datorer och de som kör andra operativsystem. I stället för att använda Invoke-WmiMethod
bör du överväga att använda Invoke-CimMethod.
Exempel
Exempel 1: Ange den ordning som krävs för WMI-metodparametrar
Det här kommandot visar den ordning som krävs för objekten.
Get-WmiObject Win32_Volume |
Get-Member -MemberType Method -Name Format |
Select-Object -ExpandProperty Definition
System.Management.ManagementBaseObject Format(System.String FileSystem, System.Boolean QuickFormat,
System.UInt32 ClusterSize, System.String Label, System.Boolean EnableCompression,
System.UInt32 Version)
Om du vill anropa WMI i PowerShell 3.0 skiljer sig från alternativa metoder och kräver att objektvärden anges i en viss ordning.
Exempel 2: Starta en instans av ett program
([Wmiclass]'Win32_Process').Create.OverloadDefinitions
System.Management.ManagementBaseObject Create(System.String CommandLine, System.String CurrentDirectory,
System.Management.ManagementObject#Win32_ProcessStartup ProcessStartupInformation)
Invoke-WmiMethod -Path Win32_Process -Name Create -ArgumentList C:\Windows\system32\notepad.exe
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 2
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ProcessId : 11312
ReturnValue : 0
PSComputerName :
Det här kommandot startar en instans av Anteckningar genom att anropa Create
metoden för klassen Win32_Process .
Egenskapen ReturnValue fylls i med egenskapen 0
, och egenskapen ProcessId fylls i med ett heltal (nästa process-ID-nummer) om kommandot har slutförts.
Exempel 3: Byt namn på en fil
$invokeWmiMethodSplat = @{
Path = "CIM_DataFile.Name='C:\scripts\test.txt'"
Name = 'Rename'
ArgumentList = 'C:\scripts\test_bu.txt'
}
Invoke-WmiMethod @invokeWmiMethodSplat
__GENUS : 2
__CLASS : __PARAMETERS
__SUPERCLASS :
__DYNASTY : __PARAMETERS
__RELPATH :
__PROPERTY_COUNT : 1
__DERIVATION : {}
__SERVER :
__NAMESPACE :
__PATH :
ReturnValue : 0
Det här kommandot byter namn på en fil. Den använder parametern Path för att referera till en instans av klassen CIM_DataFile . Sedan tillämpas metoden Byt namn på den specifika instansen.
Egenskapen ReturnValue fylls i med ett 0
om kommandot har slutförts.
Exempel 4: Skicka en matris med värden med hjälp av "-ArgumentList"
Ett exempel med en matris med objekt $binSD
följt av ett $null
värde.
$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
Class = 'Win32_SecurityDescriptorHelper'
Name = 'BinarySDToSDDL'
ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat
Parametrar
-ArgumentList
Anger de parametrar som ska skickas till den anropade metoden. Värdet för den här parametern måste vara en matris med objekt och de måste visas i den ordning som krävs av den anropade metoden. Cmdleten Invoke-CimCommand
har inte dessa begränsningar.
Om du vill fastställa i vilken ordning objekten GetMethodParameters()
ska listas kör du metoden i WMI-klassen, som du ser i exempel 1, nära slutet av det här avsnittet.
Viktigt!
Om det första värdet är en matris som innehåller mer än ett element krävs ett andra värde $null
för. Annars genererar kommandot ett fel, till exempel Unable to cast object of type 'System.Byte' to type 'System.Array'.
. Se exempel 4 ovan.
Typ: | Object[] |
Alias: | Args |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-AsJob
Anger att den här cmdleten 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 Invoke-WmiMethod
används mot 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 substantivet Job
(jobb-cmdletarna). Använd cmdleten för att hämta jobbresultatet Receive-Job
.
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. De acceptabla värdena för den här parametern är:
-1
: Oförändrat0
: Standard1
: 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.)
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 Standard Windows NT LAN Manager (NTLM) eller Kerberos-autentisering. 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 den WMI-klass som innehåller en statisk metod att anropa.
Typ: | String |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-ComputerName
Anger, som en strängmatris, de datorer som den här cmdleten kör kommandot på. Standard är den lokala datorn.
Ange NetBIOS-namnet, en IP-adress eller ett fullständigt domännamn på en eller flera datorer. Om du vill ange den lokala datorn skriver du datornamnet, en punkt (.
) eller localhost
.
Den här parametern förlitar sig inte på Windows PowerShell-fjärrkommunikation. Du kan använda parametern ComputerName även om datorn inte är konfigurerad för att köra fjärrkommandon.
Typ: | String[] |
Alias: | Cn |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Typ: | SwitchParameter |
Alias: | cf |
Position: | Named |
Standardvärde: | False |
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. Standard är den aktuella användaren. Skriv ett användarnamn, till exempel User01
, Domain01\User01
eller 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.
Typ: | PSCredential |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-EnableAllPrivileges
Anger att den här cmdleten 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 |
-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, som vanligtvis är inställd på3
: Personifiera.)1
: Anonym (döljer anroparens autentiseringsuppgifter.)2
: Identifiera (Tillåter objekt att köra frågor mot anroparens autentiseringsuppgifter.)3
: Personifiera (Tillåter att objekt använder anroparens autentiseringsuppgifter.)4
: Delegera (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 |
-InputObject
Anger ett ManagementObject-objekt som ska användas som indata. När den här parametern används ignoreras alla andra parametrar förutom parametrarna Flagga och Argument .
Typ: | ManagementObject |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Locale
Anger önskat språk för WMI-objekt. Ange värdet för parametern Nationella inställningar som en matris i MS_<LCID>
formatet i önskad ordning.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Name
Anger namnet på den metod som ska anropas. Den här parametern är obligatorisk och får inte vara null eller tom.
Typ: | String |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Namespace
När den används med parametern Klass anger den här parametern namnområdet för WMI-lagringsplatsen där den refererade WMI-klassen eller -objektet finns.
Typ: | String |
Alias: | NS |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Path
Anger WMI-objektsökvägen för en WMI-klass eller anger WMI-objektsökvägen för en instans av en WMI-klass. Klassen eller den instans som du anger måste innehålla den metod som anges i parametern Namn .
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-ThrottleLimit
Anger ett begränsningsvärde för antalet WMI-åtgärder som kan köras samtidigt. Den här parametern används tillsammans med parametern AsJob . Begränsningsgränsen gäller endast för det aktuella kommandot, inte för sessionen eller på datorn.
Typ: | Int32 |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Typ: | SwitchParameter |
Alias: | wi |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
None
Den här cmdleten accepterar inga indata.
Utdata
None
Den här cmdleten genererar inga utdata.
Kommentarer
Windows PowerShell innehåller följande alias för Invoke-WmiMethod
:
iwmi