Delen via


Invoke-WmiMethod

Roept WMI-methoden aan.

Syntaxis

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

De Invoke-WmiMethod cmdlet roept de methoden van WMI-objecten (Windows Management Instrumentation) aan.

Nieuwe CIM-cmdlets (Common Information Model), geïntroduceerd in Windows PowerShell 3.0, voeren dezelfde taken uit als de WMI-cmdlets. De CIM-cmdlets voldoen aan WS-Management (WSMan)-standaarden en aan de CIM-standaard, waarmee de cmdlets dezelfde technieken kunnen gebruiken om Windows-computers en andere besturingssystemen te beheren. In plaats van Invoke-WmiMethod-te gebruiken, kunt u aanroepen-CimMethodhttps://go.microsoft.com/fwlink/?LinkId=227965.

Voorbeelden

Voorbeeld 1: De vereiste volgorde van WMI-objecten weergeven

PS C:\> ([wmiclass]'Win32_Volume').GetMethodParameters('Format')
__GENUS           : 2
__CLASS           : __PARAMETERS
__SUPERCLASS      :
__DYNASTY         : __PARAMETERS
__RELPATH         :
__PROPERTY_COUNT  : 6
__DERIVATION      : {}
__SERVER          :
__NAMESPACE       :
__PATH            :
ClusterSize       : 0
EnableCompression : False
FileSystem        : NTFS
Label             :
QuickFormat       : False
Version           : 0
PSComputerName    :

Met deze opdracht wordt de vereiste volgorde van de objecten weergegeven. Als u WMI wilt aanroepen in PowerShell 3.0, verschilt van alternatieve methoden. Hiervoor moeten objectwaarden in een specifieke volgorde worden ingevoerd.

Voorbeeld 2: Een exemplaar van een toepassing starten

PS C:\> ([Wmiclass]'Win32_Process').GetMethodParameters('Create')
__GENUS                   : 2
__CLASS                   : __PARAMETERS
__SUPERCLASS              :
__DYNASTY                 : __PARAMETERS
__RELPATH                 :
__PROPERTY_COUNT          : 3
__DERIVATION              : {}
__SERVER                  :
__NAMESPACE               :
__PATH                    :
CommandLine               :
CurrentDirectory          :
ProcessStartupInformation :
PSComputerName            : PS C:\> Invoke-WmiMethod -Path win32_process -Name create -ArgumentList notepad.exe
__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ProcessId        : 11312
ReturnValue      : 0
PSComputerName   :

Met deze opdracht wordt een exemplaar van Kladblok gestart door de methode Create van de klasse Win32_Process aan te roepen.

De eigenschap ReturnValue wordt gevuld met een 0 en de eigenschap ProcessId wordt gevuld met een geheel getal (het volgende proces-id-nummer) als de opdracht is voltooid.

Voorbeeld 3: De naam van een bestand wijzigen

PS C:\> Invoke-WmiMethod -Path "CIM_DataFile.Name='C:\scripts\test.txt'" -Name Rename -ArgumentList "C:\scripts\test_bu.txt"
__GENUS          : 2
__CLASS          : __PARAMETERS
__SUPERCLASS     :
__DYNASTY        : __PARAMETERS
__RELPATH        :
__PROPERTY_COUNT : 1
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
ReturnValue      : 0

Met deze opdracht wordt de naam van een bestand gewijzigd. Hierbij wordt de parameter Path gebruikt om te verwijzen naar een exemplaar van de CIM_DataFile-klasse. Vervolgens wordt de methode Naam wijzigen toegepast op dat specifieke exemplaar.

De eigenschap ReturnValue wordt gevuld met een 0 als de opdracht is voltooid.

Parameters

-ArgumentList

Hiermee geeft u de parameters die moeten worden doorgegeven aan de aangeroepen methode. De waarde van deze parameter moet een matrix met objecten zijn en ze moeten worden weergegeven in de volgorde die is vereist door de aangeroepen methode. De cmdlet Invoke-CimCommand heeft deze beperkingen niet.

Als u de volgorde wilt bepalen waarin deze objecten moeten worden weergegeven, voert u de methode GetMethodParameters() uit in de WMI-klasse, zoals geïllustreerd in voorbeeld 1, aan het einde van dit onderwerp.

Belangrijk: Als de eerste waarde een matrix is die meer dan één element bevat, is een tweede waarde van $null vereist. Anders genereert de opdracht een fout, zoals 'Kan het object van het type System.Byte niet casten om 'System.Array' te typen.'.

Een voorbeeld van een matrix met objecten ($binSD) gevolgd door een null-waarde ($null):

PS C:\>$acl = get-acl test.txt

PS C:\>$binSD = $acl. GetSecurityDescriptorBinaryForm()

PS C:\>invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -argumentlist $binSD, $null

Type:Object[]
Aliassen:Args
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AsJob

Geeft aan dat met deze cmdlet de opdracht wordt uitgevoerd als achtergrondtaak. Gebruik deze parameter om opdrachten uit te voeren die lang duren voordat ze zijn voltooid.

Wanneer u de parameter AsJob gebruikt, retourneert de opdracht een object dat de achtergrondtaak vertegenwoordigt en wordt vervolgens de opdrachtprompt weergegeven. U kunt in de sessie blijven werken terwijl de taak is voltooid. Als Invoke-WmiMethod- wordt gebruikt op een externe computer, wordt de taak gemaakt op de lokale computer en worden de resultaten van externe computers automatisch geretourneerd naar de lokale computer. Als u de taak wilt beheren, gebruikt u de cmdlets die het zelfstandig naamwoord (de taak-cmdlets) bevatten. Gebruik de cmdlet Receive-Job om de taakresultaten op te halen.

Als u deze parameter wilt gebruiken met externe computers, moeten de lokale en externe computers worden geconfigureerd voor externe communicatie. Daarnaast moet u Windows PowerShell starten met de optie Als administrator uitvoeren in Windows Vista en latere versies van Windows. Zie about_Remote_Requirements voor meer informatie.

Zie about_Jobs en about_Remote_Jobs voor meer informatie over Windows PowerShell-achtergrondtaken.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Authentication

Hiermee geeft u het verificatieniveau op dat moet worden gebruikt met de WMI-verbinding. De acceptabele waarden voor deze parameter zijn:

-1: Ongewijzigd

0: Standaard

1: Geen (Geen verificatie uitgevoerd.)

2: Verbinding maken (verificatie wordt alleen uitgevoerd wanneer de client een relatie tot stand brengt met de toepassing.)

3: Aanroep (verificatie wordt alleen aan het begin van elke aanroep uitgevoerd wanneer de toepassing de aanvraag ontvangt.)

4: Pakket (Verificatie wordt uitgevoerd op alle gegevens die van de client worden ontvangen.)

5: PacketIntegrity (alle gegevens die worden overgedragen tussen de client en de toepassing worden geverifieerd en geverifieerd.)

6: PacketPrivacy (de eigenschappen van de andere verificatieniveaus worden gebruikt en alle gegevens worden versleuteld.)

Type:AuthenticationLevel
Geaccepteerde waarden:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Authority

Hiermee geeft u de instantie op die moet worden gebruikt om de WMI-verbinding te verifiëren. U kunt standaard Windows NT LAN Manager (NTLM) of Kerberos-verificatie opgeven. Als u NTLM wilt gebruiken, stelt u de instelling van de instantie in op ntlmdomain:<DomainName>, waarbij <DomainName> een geldige NTLM-domeinnaam identificeert. Als u Kerberos wilt gebruiken, geeft u kerberos op:<DomainName\ServerName>. U kunt de instantie-instelling niet opnemen wanneer u verbinding maakt met de lokale computer.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Class

Hiermee geeft u de WMI-klasse op die een statische methode bevat die moet worden aangeroepen.

Type:String
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ComputerName

Hiermee geeft u op, als tekenreeksmatrix, de computers waarop deze cmdlet de opdracht uitvoert. De standaardwaarde is de lokale computer.

Typ de NetBIOS-naam, een IP-adres of een volledig gekwalificeerde domeinnaam van een of meer computers. Als u de lokale computer wilt opgeven, typt u de computernaam, een punt (.) of localhost.

Deze parameter is niet afhankelijk van externe communicatie met Windows PowerShell. U kunt de parameter ComputerName gebruiken, zelfs als uw computer niet is geconfigureerd voor het uitvoeren van externe opdrachten.

Type:String[]
Aliassen:Cn
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Confirm

U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliassen:cf
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Credential

Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. De standaardwaarde is de huidige gebruiker. Typ een gebruikersnaam, zoals User01, Domain01\User01 of User@Contoso.com. Of voer een PSCredential--object in, zoals een object dat wordt geretourneerd door de Get-Credential-cmdlet. Wanneer u een gebruikersnaam typt, wordt u gevraagd om een wachtwoord.

Type:PSCredential
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-EnableAllPrivileges

Geeft aan dat deze cmdlet alle bevoegdheden van de huidige gebruiker inschakelt voordat de opdracht de WMI-aanroep uitvoert.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Impersonation

Hiermee geeft u het imitatieniveau op dat moet worden gebruikt. De acceptabele waarden voor deze parameter zijn:

0: Standaard (leest het lokale register voor het standaard-imitatieniveau, dat meestal is ingesteld op '3: imitatie'.)

1: Anoniem (verbergt de referenties van de beller.)

2: Identificeren (Hiermee kunnen objecten query's uitvoeren op de referenties van de aanroeper.)

3: Imiteren (hiermee kunnen objecten de referenties van de aanroeper gebruiken.)

4: Delegeren (Hiermee kunnen objecten andere objecten toestaan om de referenties van de aanroeper te gebruiken.)

Type:ImpersonationLevel
Geaccepteerde waarden:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-InputObject

Hiermee geeft u een ManagementObject-object te gebruiken als invoer. Wanneer deze parameter wordt gebruikt, worden alle andere parameters behalve de Flag en Argument parameters genegeerd.

Type:ManagementObject
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:True
Jokertekens accepteren:False

-Locale

Hiermee geeft u de voorkeursinstelling voor WMI-objecten. Geef de waarde van de parameter Landinstelling op als een matrix in de MS_<LCID->-indeling in de voorkeursvolgorde.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Name

Hiermee geeft u de naam van de methode die moet worden aangeroepen. Deze parameter is verplicht en mag niet null of leeg zijn.

Type:String
Position:1
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Namespace

Wanneer deze parameter wordt gebruikt met de parameter Klasse, geeft deze parameter de naamruimte van de WMI-opslagplaats op waar de WMI-klasse of het object waarnaar wordt verwezen zich bevindt.

Type:String
Aliassen:NS
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Path

Hiermee geeft u het WMI-objectpad van een WMI-klasse op of geeft u het WMI-objectpad van een exemplaar van een WMI-klasse op. De klasse of het exemplaar dat u opgeeft, moet de methode bevatten die is opgegeven in de parameter Name.

Type:String
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ThrottleLimit

Hiermee geeft u een vertragingswaarde op voor het aantal WMI-bewerkingen dat tegelijkertijd kan worden uitgevoerd. Deze parameter wordt samen met de parameter AsJob gebruikt. De beperkingslimiet is alleen van toepassing op de huidige opdracht, niet op de sessie of op de computer.

Type:Int32
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-WhatIf

Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliassen:wi
Position:Named
Default value:False
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

Deze cmdlet accepteert geen invoer.

Uitvoerwaarden

None

Met deze cmdlet wordt geen uitvoer gegenereerd.