Sdílet prostřednictvím


Invoke-WmiMethod

Volá metody WMI.

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

Rutina Invoke-WmiMethod volá metody objektů WMI (Windows Management Instrumentation).

Nové rutiny MODELU CIM (Common Information Model) zavedené ve Windows PowerShellu 3.0 provádějí stejné úlohy jako rutiny rozhraní WMI. Rutiny CIM vyhovují standardům WS-Management (WSMan) a standardu CIM, což umožňuje rutinám používat stejné techniky ke správě počítačů s Windows a těch, na kterých běží jiné operační systémy. Místo použití Invoke-WmiMethodzvažte použití Invoke-CimMethod.

Příklady

Příklad 1: Výpis požadovaného pořadí parametrů metody rozhraní WMI

Tento příkaz vypíše požadované pořadí objektů.

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)

Pokud chcete vyvolat rozhraní WMI v PowerShellu 3.0, liší se od alternativních metod a vyžaduje, aby hodnoty objektů byly zadány v určitém pořadí.

Příklad 2: Spuštění instance aplikace

([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   :

Tento příkaz spustí instanci Poznámkový blok voláním Create metody Win32_Process třídy.

Vlastnost ReturnValue je naplněna hodnotou 0a vlastnost ProcessId je vyplněna celé číslo (číslo ID dalšího procesu), pokud je příkaz dokončen.

Příklad 3: Přejmenování souboru

$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

Tento příkaz přejmenuje soubor. Pomocí parametru Path odkazuje na instanci třídy CIM_DataFile . Pak použije metodu Rename na danou konkrétní instanci.

Vlastnost ReturnValue je naplněna 0 , pokud je příkaz dokončen.

Příklad 4: Předání pole hodnot pomocí -ArgumentList

Příklad použití pole objektů $binSD následovaných $null hodnotou.

$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
    Class = 'Win32_SecurityDescriptorHelper'
    Name = 'BinarySDToSDDL'
    ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat

Parametry

-ArgumentList

Určuje parametry, které se mají předat volané metodě. Hodnota tohoto parametru musí být pole objektů a musí se zobrazit v pořadí, v jakém je volána metoda. Rutina Invoke-CimCommand nemá tato omezení.

Pokud chcete určit pořadí, ve kterém se mají tyto objekty vypsat, spusťte GetMethodParameters() metodu ve třídě WMI, jak je znázorněno v příkladu 1, na konci tohoto tématu.

Důležité

Pokud je první hodnotou matice, která obsahuje více než jeden prvek, je požadována druhá hodnota $null . Jinak příkaz vygeneruje chybu, například Unable to cast object of type 'System.Byte' to type 'System.Array'.. Viz příklad 4 výše.

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

-AsJob

Označuje, že tato rutina spouští příkaz jako úlohu na pozadí. Pomocí tohoto parametru můžete spouštět příkazy, které potrvá dlouhou dobu.

Pokud použijete parametr AsJob , příkaz vrátí objekt, který představuje úlohu na pozadí a pak zobrazí příkazový řádek. Během dokončení úlohy můžete pokračovat v práci v relaci. Pokud Invoke-WmiMethod se používá proti vzdálenému počítači, úloha se vytvoří v místním počítači a výsledky ze vzdálených počítačů se automaticky vrátí do místního počítače. Ke správě úlohy použijte rutiny, které obsahují Job podstatné jméno (rutiny úlohy). K získání výsledků úlohy použijte rutinu Receive-Job .

Chcete-li tento parametr použít se vzdálenými počítači, musí být místní a vzdálené počítače nakonfigurovány pro vzdálenou komunikace. Kromě toho musíte spustit Windows PowerShell pomocí možnosti Spustit jako správce ve Windows Vista a novějších verzích Windows. Další informace najdete v tématu about_Remote_Requirements.

Další informace o úlohách na pozadí prostředí Windows PowerShell najdete v tématu about_Jobs a about_Remote_Jobs.

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

-Authentication

Určuje úroveň ověřování, která se má použít s připojením rozhraní WMI. Tento parametr přijímá tyto hodnoty:

  • -1: Beze změny
  • 0: Výchozí
  • 1: Žádné (neprovádí se žádné ověřování.)
  • 2: Připojení (Ověřování se provádí pouze v případech, kdy klient vytvoří relaci s aplikací.)
  • 3: Volání (Ověřování se provádí pouze na začátku každého volání, když aplikace obdrží požadavek.)
  • 4: Paket (Ověřování se provádí u všech dat přijatých z klienta.)
  • 5: PacketIntegrity (Všechna data přenášená mezi klientem a aplikací se ověřují a ověřují.)
  • 6: PacketPrivacy (Vlastnosti ostatních úrovní ověřování se používají a všechna data jsou šifrovaná.)
Type:AuthenticationLevel
Accepted values:Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Authority

Určuje autoritu, která se má použít k ověření připojení rozhraní WMI. Můžete zadat standardní ověřování systém Windows NT LAN Manager (NTLM) nebo Kerberos. Chcete-li použít NTLM, nastavte nastavení autority na ntlmdomain:<DomainName>, kde <DomainName> identifikuje platný název domény NTLM. Chcete-li použít Protokol Kerberos, zadejte kerberos:<DomainName>\<ServerName>. Nastavení autority nelze zahrnout při připojení k místnímu počítači.

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

-Class

Určuje třídu WMI, která obsahuje statickou metodu volání.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Určuje jako pole řetězců počítače, na které tato rutina spouští příkaz. Ve výchozím nastavení je to místní počítač.

Zadejte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény jednoho nebo více počítačů. Chcete-li zadat místní počítač, zadejte název počítače, tečku (.) nebo localhost.

Tento parametr nespoléhá na vzdálené komunikace Windows PowerShellu. Parametr ComputerName můžete použít i v případě, že váš počítač není nakonfigurovaný tak, aby spouštět vzdálené příkazy.

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

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

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

-Credential

Určuje uživatelský účet, který má oprávnění k provedení této akce. Ve výchozím nastavení je to aktuální uživatel. Zadejte uživatelské jméno, například User01, Domain01\User01nebo User@Contoso.com. Nebo zadejte objekt PSCredential , například objekt vrácený rutinou Get-Credential . Když zadáte uživatelské jméno, zobrazí se výzva k zadání hesla.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableAllPrivileges

Označuje, že tato rutina povolí všechna oprávnění aktuálního uživatele před provedením příkazu volání rozhraní WMI.

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

-Impersonation

Určuje úroveň zosobnění, která se má použít. Tento parametr přijímá tyto hodnoty:

  • 0: Výchozí (přečte místní registr pro výchozí úroveň zosobnění, která je obvykle nastavená na 3: Zosobnění.)
  • 1: Anonymní (skryje přihlašovací údaje volajícího.)
  • 2: Identifikace (Umožňuje objektům dotazovat přihlašovací údaje volajícího.)
  • 3: Zosobnění (umožňuje objektům používat přihlašovací údaje volajícího.)
  • 4: Delegát (Umožňuje objektům povolit použití přihlašovacích údajů volajícího jiným objektům.)
Type:ImpersonationLevel
Accepted values:Default, Anonymous, Identify, Impersonate, Delegate
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Určuje objekt ManagementObject , který se má použít jako vstup. Při použití tohoto parametru se ignorují všechny ostatní parametry s výjimkou parametrů Příznak a Argument .

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

-Locale

Určuje upřednostňované národní prostředí pro objekty WMI. Zadejte hodnotu parametru Národního prostředí jako pole ve MS_<LCID> formátu v upřednostňovaném pořadí.

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

-Name

Určuje název metody, která se má vyvolat. Tento parametr je povinný a nesmí být null ani prázdný.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Namespace

Při použití s parametrem Class tento parametr určuje obor názvů úložiště WMI, kde se nachází odkazovaná třída nebo objekt rozhraní WMI.

Type:String
Aliases:NS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Určuje cestu objektu WMI třídy WMI nebo určuje cestu objektu WMI instance třídy WMI. Třída nebo zadaná instance musí obsahovat metodu určenou v parametru Name .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Určuje hodnotu omezení počtu operací rozhraní WMI, které lze spustit současně. Tento parametr se používá společně s parametrem AsJob . Omezení se vztahuje pouze na aktuální příkaz, ne na relaci nebo na počítač.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

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

Vstupy

None

Tato rutina nepřijímá žádné vstupy.

Výstupy

None

Tato rutina negeneruje žádný výstup.

Poznámky

Windows PowerShell obsahuje následující aliasy pro Invoke-WmiMethod:

  • iwmi