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

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 met de CIM-standaard, waarmee de cmdlets dezelfde technieken kunnen gebruiken om Windows-computers en computers met andere besturingssystemen te beheren. In plaats van gebruik te maken Invoke-WmiMethod, kunt u Aanroepen-CimMethod 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. Hiervoor moeten 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 start u een exemplaar van Kladblok door de Create methode van de klasse Win32_Process aan te roepen.

De eigenschap ReturnValue wordt gevuld met een 0en 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 klasse CIM_DataFile . 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 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 op 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 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 vereist $null . Anders genereert de opdracht een fout, zoals Unable to cast object of type 'System.Byte' to type 'System.Array'.. 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 met deze cmdlet de opdracht wordt uitgevoerd als achtergrondtaak. Gebruik deze parameter om opdrachten uit te voeren die lang duren om te voltooien.

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 Job zelfstandig naamwoord (de taak-cmdlets) bevatten. Gebruik de Receive-Job cmdlet 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 toegang. Daarnaast moet u Windows PowerShell starten met de optie Uitvoeren als administrator in Windows Vista en latere versies van Windows. Zie about_Remote_Requirements voor meer informatie.

Zie about_Jobs enabout_Remote_Jobs voor meer informatie over Windows PowerShell achtergrondtaken.

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

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: 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
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Authority

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

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
-ComputerName

Hiermee geeft u, als tekenreeksmatrix, de computers waarop deze cmdlet de opdracht uitvoert. 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 toegang. 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 Get-Credential cmdlet. 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 met deze cmdlet alle bevoegdheden van de huidige gebruiker zijn ingeschakeld voordat de opdracht de WMI-aanroep uitvoert.

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

Hiermee geeft u het imitatieniveau op 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: imitatie.)
  • 1: Anoniem (verbergt de referenties van de beller.)
  • 2: Identificeren (Hiermee kunnen objecten query's uitvoeren op de referenties van de aanroeper.)
  • 3: imitatie ( Hiermee kunnen objecten de referenties van de aanroeper gebruiken.)
  • 4: Delegeren (Hiermee kunnen andere objecten de referenties van de aanroeper 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 op dat moet worden gebruikt 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
-Locale

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

Type:String
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
-Namespace

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
-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
-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

None

Deze cmdlet accepteert geen invoer.

Uitvoerwaarden

None

Met deze cmdlet wordt geen uitvoer gegenereerd.