Invoke-WmiMethod

Roept WMI-methoden aan.

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

Met Invoke-WmiMethod de cmdlet worden de methoden van Windows WMI-objecten (Management Instrumentation) aangeroepen.

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 met de CIM-standaard, waarmee de cmdlets dezelfde technieken kunnen gebruiken om Windows computers en computers met andere besturingssystemen te beheren. In plaats van te gebruiken Invoke-WmiMethod, kunt u overwegen Invoke-CimMethod te gebruiken.

Voorbeelden

Voorbeeld 1: De vereiste volgorde van WMI-objecten weergeven

([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 en vereist u dat objectwaarden in een specifieke volgorde worden ingevoerd.

Voorbeeld 2: Een exemplaar van een toepassing starten

([Wmiclass]'Win32_Process').GetMethodParameters('Create')

__GENUS                   : 2
__CLASS                   : __PARAMETERS
__SUPERCLASS              :
__DYNASTY                 : __PARAMETERS
__RELPATH                 :
__PROPERTY_COUNT          : 3
__DERIVATION              : {}
__SERVER                  :
__NAMESPACE               :
__PATH                    :
CommandLine               :
CurrentDirectory          :
ProcessStartupInformation :
PSComputerName            :

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 Create methode van de Win32_Process-klasse 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

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. De parameter Path wordt 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.

Voorbeeld 4: Een matrix met waarden doorgeven met behulp van `-ArgumentList`

Een voorbeeld van het gebruik van een matrix met objecten $binSD , gevolgd door een $null waarde.

$acl = get-acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
Invoke-WmiMethod -class Win32_SecurityDescriptorHelper -Name BinarySDToSDDL -ArgumentList $binSD, $null

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 Invoke-CimCommand cmdlet heeft deze beperkingen niet.

Als u de volgorde wilt bepalen waarin deze objecten moeten worden weergegeven, voert u de GetMethodParameters() methode uit op 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 object van het type System.Byte niet casten' om 'System.Array' te typen.' Zie voorbeeld 4 hierboven.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-AsJob

Geeft aan dat deze cmdlet de opdracht uitvoert als achtergrondtaak. Gebruik deze parameter om opdrachten uit te voeren die lang duren.

Wanneer u de parameter AsJob gebruikt, retourneert de opdracht een object dat de achtergrondtaak vertegenwoordigt en wordt vervolgens de opdrachtprompt weergegeven. U kunt blijven werken in de sessie terwijl de taak is voltooid. Als Invoke-WmiMethod deze 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 behulp van de optie Uitvoeren als administrator 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
Accept pipeline input:False
Accept wildcard characters:False
-Autoriteit

Hiermee geeft u de instantie die moet worden gebruikt om de WMI-verbinding te verifiëren. U kunt standaardverificatie Windows NT LAN Manager (NTLM) of Kerberos opgeven. Als u NTLM wilt gebruiken, stelt u de instantie-instelling in op ntlmdomain:<DomainName>, waarbij <DomainName> een geldige NTLM-domeinnaam wordt geïdentificeerd. 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
Accept pipeline input:False
Accept wildcard characters:False
-ComputerName

Hiermee geeft u, als tekenreeksmatrix, de computers waarop deze cmdlet de opdracht wordt uitgevoerd. Standaard is dit 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 Windows PowerShell externe communicatie. U kunt de parameter ComputerName zelfs gebruiken als uw computer niet is geconfigureerd voor het uitvoeren van externe opdrachten.

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

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Credential

Hiermee geeft u een gebruikersaccount op dat gemachtigd is om deze actie uit te voeren. Standaard is dit de huidige gebruiker. Typ een gebruikersnaam, zoals User01, Domain01\User01of User@Contoso.com. U kunt ook een PSCredential-object invoeren, zoals een object dat wordt geretourneerd door de cmdlet Get-Credential. Wanneer u een gebruikersnaam typt, wordt u gevraagd om een wachtwoord.

Type:PSCredential
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:False
Accept wildcard characters:False
-Imitatie

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

  • 0: Standaard (leest het lokale register voor het standaard-imitatieniveau, dat meestal is ingesteld op '3: Imiteren'.)
  • 1: Anoniem (verbergt de referenties van de beller.)
  • 2: Identificeren (hiermee kunnen objecten de referenties van de aanroeper opvragen.)
  • 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
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-InputObject

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

Type:ManagementObject
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Klasse

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

Type:String
Position:0
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Landinstelling

Hiermee geeft u de voorkeurslandinstelling voor WMI-objecten. Geef de waarde van de parameter Landinstellingen op als een matrix in de MS_<LCID> notatie in de voorkeursvolgorde.

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

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

Type:String
Aliases:NS
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:False
Accept wildcard characters: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
Accept pipeline input:False
Accept wildcard characters:False
-ThrottleLimit

Hiermee geeft u een vertragingswaarde op voor het aantal WMI-bewerkingen dat gelijktijdig kan worden uitgevoerd. Deze parameter wordt samen met de astaakparameter 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
Accept pipeline input:False
Accept wildcard characters:False
-Verificatie

Hiermee geeft u het verificatieniveau op dat moet worden gebruikt met de WMI-verbinding. De aanvaardbare 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: Oproep (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
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Invoerwaarden

Geen

Deze cmdlet accepteert geen invoer.

Uitvoerwaarden

Geen

Met deze cmdlet wordt geen uitvoer gegenereerd.