Invoke-WmiMethod
Wywołuje metody WMI.
Składnia
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>]
Opis
Polecenie Invoke-WmiMethod
cmdlet wywołuje metody obiektów Instrumentacja zarządzania Windows (WMI).
Nowe polecenia cmdlet modelu wspólnych informacji (CIM) wprowadzone w programie Windows PowerShell 3.0 wykonują te same zadania co polecenia cmdlet usługi WMI. Polecenia cmdlet ciM są zgodne ze standardami WS-Management (WSMan) i standardem CIM, który umożliwia poleceń cmdlet używanie tych samych technik do zarządzania komputerami z systemem Windows i tymi, na których działają inne systemy operacyjne. Zamiast używać metody Invoke-WmiMethod
, rozważ użycie metody Invoke-CimMethod.
Przykłady
Przykład 1. Wyświetlanie listy wymaganych kolejności parametrów metody WMI
To polecenie wyświetla listę wymaganej kolejności obiektów.
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)
Aby wywołać usługę WMI w programie PowerShell 3.0 różni się od metod alternatywnych i wymaga wprowadzenia wartości obiektów w określonej kolejności.
Przykład 2. Uruchamianie wystąpienia aplikacji
([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 :
To polecenie uruchamia wystąpienie Notatnika, wywołując Create
metodę klasy Win32_Process .
Właściwość ReturnValue jest wypełniana wartością 0
, a właściwość ProcessId jest wypełniana liczbą całkowitą (następnym numerem identyfikatora procesu), jeśli polecenie zostanie ukończone.
Przykład 3. Zmiana nazwy pliku
$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
To polecenie zmienia nazwę pliku. Używa parametru Path , aby odwołać się do wystąpienia klasy CIM_DataFile . Następnie stosuje metodę Rename do tego konkretnego wystąpienia.
Właściwość ReturnValue jest wypełniana wartością 0
, jeśli polecenie zostało ukończone.
Przykład 4. Przekazywanie tablicy wartości przy użyciu elementu "-ArgumentList"
Przykład użycia tablicy $binSD
obiektów, po których następuje $null
wartość.
$acl = Get-Acl test.txt
$binSD = $acl.GetSecurityDescriptorBinaryForm()
$invokeWmiMethodSplat = @{
Class = 'Win32_SecurityDescriptorHelper'
Name = 'BinarySDToSDDL'
ArgumentList = $binSD, $null
}
Invoke-WmiMethod @invokeWmiMethodSplat
Parametry
-ArgumentList
Określa parametry, które mają być przekazywane do wywoływanej metody. Wartość tego parametru musi być tablicą obiektów i muszą być wyświetlane w kolejności wymaganej przez wywołaną metodę. Polecenie Invoke-CimCommand
cmdlet nie ma tych ograniczeń.
Aby określić kolejność wyświetlania listy tych obiektów, uruchom metodę GetMethodParameters()
w klasie WMI, jak pokazano w przykładzie 1, pod koniec tego tematu.
Ważne
Jeśli pierwsza wartość jest tablicą zawierającą więcej niż jeden element, wymagana jest druga wartość $null
. W przeciwnym razie polecenie generuje błąd, taki jak Unable to cast object of type 'System.Byte' to type 'System.Array'.
. Zobacz przykład 4 powyżej.
Typ: | Object[] |
Aliasy: | Args |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AsJob
Wskazuje, że to polecenie cmdlet uruchamia polecenie jako zadanie w tle. Użyj tego parametru, aby uruchomić polecenia, które zajmują dużo czasu.
Gdy używasz parametru AsJob , polecenie zwraca obiekt reprezentujący zadanie w tle, a następnie wyświetla wiersz polecenia. Możesz kontynuować pracę w sesji, gdy zadanie zostanie zakończone. Jeśli Invoke-WmiMethod
jest używany na komputerze zdalnym, zadanie jest tworzone na komputerze lokalnym, a wyniki z komputerów zdalnych są automatycznie zwracane do komputera lokalnego. Aby zarządzać zadaniem, użyj poleceń cmdlet zawierających Job
wartość noun (polecenia cmdlet zadania). Aby uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
Aby użyć tego parametru z komputerami zdalnymi, należy skonfigurować komputery lokalne i zdalne na potrzeby komunikacji zdalnej. Ponadto należy uruchomić program Windows PowerShell przy użyciu opcji Uruchom jako administrator w systemie Windows Vista i nowszych wersjach systemu Windows. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.
Aby uzyskać więcej informacji na temat zadań w tle programu Windows PowerShell, zobacz about_Jobs i about_Remote_Jobs.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Authentication
Określa poziom uwierzytelniania, który ma być używany z połączeniem usługi WMI. Dopuszczalne wartości tego parametru to:
-1
: bez zmian0
: Wartość domyślna1
: Brak (nie wykonano uwierzytelniania).2
: Połącz (Uwierzytelnianie jest wykonywane tylko wtedy, gdy klient ustanawia relację z aplikacją).3
: Wywołanie (Uwierzytelnianie jest wykonywane tylko na początku każdego wywołania, gdy aplikacja odbiera żądanie).4
: Pakiet (Uwierzytelnianie jest wykonywane na wszystkich danych odbieranych od klienta).5
: PacketIntegrity (Wszystkie dane przesyłane między klientem a aplikacją są uwierzytelniane i weryfikowane).6
: PacketPrivacy (używane są właściwości innych poziomów uwierzytelniania, a wszystkie dane są szyfrowane).
Typ: | AuthenticationLevel |
Dopuszczalne wartości: | Default, None, Connect, Call, Packet, PacketIntegrity, PacketPrivacy, Unchanged |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Authority
Określa urząd używany do uwierzytelniania połączenia usługi WMI. Można określić standardowe uwierzytelnianie Protokołu Kerberos lub Windows NT LAN Manager (NTLM). Aby użyć protokołu NTLM, ustaw ustawienie urzędu na ntlmdomain:<DomainName>
, gdzie <DomainName>
identyfikuje prawidłową nazwę domeny NTLM. Aby użyć protokołu Kerberos, określ wartość kerberos:<DomainName>\<ServerName>
. Nie można dołączyć ustawienia urzędu podczas nawiązywania połączenia z komputerem lokalnym.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Class
Określa klasę WMI zawierającą metodę statyczną do wywołania.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ComputerName
Określa, jako tablicę ciągów, komputery, na których to polecenie cmdlet uruchamia polecenie . Wartość domyślna to komputer lokalny.
Wpisz nazwę NetBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny jednego lub kilku komputerów. Aby określić komputer lokalny, wpisz nazwę komputera, kropkę (.
) lub localhost
.
Ten parametr nie opiera się na komunikacji zdalnej programu Windows PowerShell. Można użyć parametru ComputerName , nawet jeśli komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych.
Typ: | String[] |
Aliasy: | Cn |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Confirm
Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Określa konto użytkownika, które ma uprawnienia do wykonania tej akcji. Wartość domyślna to użytkownik bieżący. Wpisz nazwę użytkownika, taką jak User01
, Domain01\User01
lub User@Contoso.com
. Możesz też wprowadzić obiekt PSCredential , taki jak obiekt zwracany przez Get-Credential
polecenie cmdlet. Podczas wpisywania nazwy użytkownika zostanie wyświetlony monit o podanie hasła.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-EnableAllPrivileges
Wskazuje, że to polecenie cmdlet włącza wszystkie uprawnienia bieżącego użytkownika przed wykonaniem wywołania usługi WMI.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Impersonation
Określa poziom personifikacji do użycia. Dopuszczalne wartości tego parametru to:
0
: Wartość domyślna (odczytuje rejestr lokalny dla domyślnego poziomu personifikacji, który jest zwykle ustawiony na3
wartość : Personifikuj).1
: Anonimowe (ukrywa poświadczenia obiektu wywołującego).2
: Zidentyfikuj (umożliwia obiektom wykonywanie zapytań dotyczących poświadczeń obiektu wywołującego).3
: Personifikuj (umożliwia obiektom używanie poświadczeń obiektu wywołującego).4
: Delegat (Umożliwia obiektom zezwolenie innym obiektom na używanie poświadczeń obiektu wywołującego).
Typ: | ImpersonationLevel |
Dopuszczalne wartości: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-InputObject
Określa obiekt ManagementObject , który ma być używany jako dane wejściowe. Jeśli ten parametr jest używany, wszystkie inne parametry z wyjątkiem parametrów Flaga i Argument są ignorowane.
Typ: | ManagementObject |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | True |
Akceptowanie symboli wieloznacznych: | False |
-Locale
Określa preferowane ustawienia regionalne dla obiektów WMI. Określ wartość parametru Ustawienia regionalne jako tablicę w MS_<LCID>
formacie w preferowanej kolejności.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Name
Określa nazwę metody do wywołania. Ten parametr jest obowiązkowy i nie może być pusty ani mieć wartości null.
Typ: | String |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Namespace
W przypadku użycia z parametrem Class ten parametr określa przestrzeń nazw repozytorium WMI, w której znajduje się przywoływali klasa lub obiekt WMI.
Typ: | String |
Aliasy: | NS |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Path
Określa ścieżkę obiektu WMI klasy WMI lub określa ścieżkę obiektu WMI wystąpienia klasy WMI. Klasa lub określone wystąpienie musi zawierać metodę określoną w parametrze Name .
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ThrottleLimit
Określa wartość ograniczenia liczby operacji WMI, które można wykonać jednocześnie. Ten parametr jest używany razem z parametrem AsJob . Limit ograniczania ma zastosowanie tylko do bieżącego polecenia, a nie do sesji ani do komputera.
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-WhatIf
Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
To polecenie cmdlet nie akceptuje żadnych danych wejściowych.
Dane wyjściowe
None
To polecenie cmdlet nie generuje żadnych danych wyjściowych.
Uwagi
Program Windows PowerShell zawiera następujące aliasy dla programu Invoke-WmiMethod
:
iwmi