Get-WmiObject
Pobiera wystąpienia klas instrumentacji zarządzania Windows (WMI) lub informacje o dostępnych klasach.
Składnia
Get-WmiObject
[-Class] <String>
[[-Property] <String[]>]
[-Filter <String>]
[-Amended]
[-DirectRead]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[[-Class] <String>]
[-Recurse]
[-Amended]
[-List]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-DirectRead]
-Query <String>
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Get-WmiObject
[-Amended]
[-AsJob]
[-Impersonation <ImpersonationLevel>]
[-Authentication <AuthenticationLevel>]
[-Locale <String>]
[-EnableAllPrivileges]
[-Authority <String>]
[-Credential <PSCredential>]
[-ThrottleLimit <Int32>]
[-ComputerName <String[]>]
[-Namespace <String>]
[<CommonParameters>]
Opis
Począwszy od programu PowerShell 3.0, to polecenie cmdlet zostało zastąpione przez Get-CimInstance
polecenie .
Polecenie Get-WmiObject
cmdlet pobiera wystąpienia klas WMI lub informacje o dostępnych klasach WMI. Aby określić komputer zdalny, użyj parametru ComputerName . Jeśli określono parametr Lista, polecenie cmdlet pobiera informacje o klasach WMI, które są dostępne w określonej przestrzeni nazw. Jeśli określono parametr Query, polecenie cmdlet uruchamia instrukcję języka zapytań WMI (WQL).
Polecenie Get-WmiObject
cmdlet nie używa komunikacji zdalnej programu Windows PowerShell do wykonywania operacji zdalnych.
Można użyć parametru Get-WmiObject
ComputerName polecenia cmdlet, nawet jeśli komputer nie spełnia wymagań dotyczących komunikacji zdalnej programu Windows PowerShell lub nie jest skonfigurowany do komunikacji zdalnej w programie Windows PowerShell.
Począwszy od programu Windows PowerShell 3.0, właściwość __Server obiektu zwracającego ma alias PSComputerNameGet-WmiObject
. Ułatwia to dołączenie nazwy komputera źródłowego do danych wyjściowych i raportów.
Przykłady
Przykład 1. Pobieranie procesów na komputerze lokalnym
Ten przykład umożliwia pobranie procesów na komputerze lokalnym.
Get-WmiObject -Class Win32_Process
Przykład 2: Pobieranie usług na komputerze zdalnym
Ten przykład pobiera usługi na komputerze zdalnym. Parametr ComputerName określa adres IP komputera zdalnego. Domyślnie bieżące konto użytkownika musi należeć do grupy Administratorzy na komputerze zdalnym.
Get-WmiObject -Class Win32_Service -ComputerName 10.1.4.62
Przykład 3. Pobieranie klas WMI w głównej lub domyślnej przestrzeni nazw komputera lokalnego
W tym przykładzie klasy WMI są pobierane w głównej lub domyślnej przestrzeni nazw komputera lokalnego.
Get-WmiObject -Namespace "root/default" -List
Przykład 4. Pobieranie nazwanej usługi na wielu komputerach
Ten przykład pobiera usługę WinRM na komputerach określonych przez wartość parametru ComputerName .
Get-WmiObject -Query "select * from win32_service where name='WinRM'" -ComputerName Server01, Server02 |
Format-List -Property PSComputerName, Name, ExitCode, Name, ProcessID, StartMode, State, Status
PSComputerName : SERVER01
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 844
StartMode : Auto
State : Running
Status : OK
PSComputerName : SERVER02
Name : WinRM
ExitCode : 0
Name : WinRM
ProcessID : 932
StartMode : Auto
State : Running
Status : OK
Operator potoku (|
) wysyła dane wyjściowe do Format-List
polecenia cmdlet, które dodaje właściwość PSComputerName do domyślnych danych wyjściowych. PSComputerName to alias właściwości __Server zwracanych Get-WmiObject
obiektów. Ten alias został wprowadzony w programie PowerShell 3.0.
Przykład 5. Zatrzymywanie usługi na komputerze zdalnym
Ten przykład zatrzymuje usługę WinRM na komputerze zdalnym. Get-WmiObject
pobiera wystąpienie obiektu usługi WinRM na serwerze Server01. Następnie wywołuje metodę StopService klasy Win32_Service WMI dla tego obiektu.
(Get-WmiObject -Class Win32_Service -Filter "name='WinRM'" -ComputerName Server01).StopService()
Jest to równoważne użyciu Stop-Service
polecenia cmdlet .
Przykład 6. Pobieranie systemu BIOS na komputerze lokalnym
Ten przykład pobiera informacje o systemie BIOS z komputera lokalnego. Parametr Format-List
Property polecenia cmdlet służy do wyświetlania wszystkich właściwości zwróconego obiektu na liście. Domyślnie wyświetlany jest tylko podzbiór właściwości zdefiniowanych w Types.ps1xml
pliku konfiguracji.
Get-WmiObject -Class Win32_Bios | Format-List -Property *
Status : OK
Name : Phoenix ROM BIOS PLUS Version 1.10 A05
Caption : Phoenix ROM BIOS PLUS Version 1.10 A05
SMBIOSPresent : True
__GENUS : 2
__CLASS : Win32_BIOS
__SUPERCLASS : CIM_BIOSElement
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10
__PROPERTY_COUNT : 27
__DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalElement,
__SERVER : Server01
__NAMESPACE : root\cimv2
__PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
BiosCharacteristics : {7, 9, 10, 11...}
BIOSVersion : {DELL - 15, Phoenix ROM BIOS PLUS Version 1.10 A05}
BuildNumber :
CodeSet :
CurrentLanguage : en|US|iso8859-1
Description : Phoenix ROM BIOS PLUS Version 1.10 A05
IdentificationCode :
InstallableLanguages : 1
InstallDate :
LanguageEdition :
ListOfLanguages : {en|US|iso8859-1}
Manufacturer : Dell Inc.
OtherTargetOS :
PrimaryBIOS : True
ReleaseDate : 20101103000000.000000+000
SerialNumber : 8VDM9P1
SMBIOSBIOSVersion : A05
SMBIOSMajorVersion : 2
SMBIOSMinorVersion : 6
SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 A05
SoftwareElementState : 3
TargetOperatingSystem : 0
Version : DELL - 15
Scope : System.Management.ManagementScope
Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS
Options : System.Management.ObjectGetOptions
ClassPath : \\JUNE-PC\root\cimv2:Win32_BIOS
Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Caption...}
SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...}
Qualifiers : {dynamic, Locale, provider, UUID}
Site :
Container :
Przykład 7. Pobieranie usług na komputerze zdalnym
W tym przykładzie użyto parametru Get-WmiObject
Credential polecenia cmdlet w celu pobrania usług na komputerze zdalnym. Wartość parametru Credential to nazwa konta użytkownika. Użytkownik jest monitowany o podanie hasła.
Get-WmiObject Win32_Service -Credential FABRIKAM\administrator -ComputerName Fabrikam
Uwaga
Nie można używać poświadczeń podczas określania wartości docelowej komputera lokalnego.
Parametry
-Amended
Pobiera lub ustawia wartość wskazującą, czy obiekty zwracane z usługi WMI powinny zawierać zmienione informacje. Zazwyczaj zmienione informacje są lokalizowalne, takie jak opisy obiektów i właściwości, które są dołączone do obiektu WMI.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AsJob
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 Get-WmiObject
jest używany z parametrem ComputerName , 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, które zawierają Job
wartość noun. Aby uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
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. Prawidłowe wartości 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 NTLM lub Kerberos. 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 nazwę klasy WMI. Gdy ten parametr jest używany, polecenie cmdlet pobiera wystąpienia klasy WMI.
Typ: | String |
Aliasy: | ClassName |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ComputerName
Określa komputer docelowy dla operacji zarządzania. Wprowadź w pełni kwalifikowaną nazwę domeny (FQDN), nazwę NetBIOS lub adres IP. Gdy komputer zdalny znajduje się w innej domenie niż komputer lokalny, wymagana jest w pełni kwalifikowana nazwa domeny.
Wartość domyślna to komputer lokalny. Aby określić komputer lokalny, na przykład na liście nazw komputerów, użyj nazwy localhost
, nazwy komputera lokalnego lub kropki (.
).
Podczas określania komputera zdalnego bieżące konto lub określone za pomocą parametru Credential musi mieć odpowiednie uprawnienia dostępu do informacji.
Ten parametr nie opiera się na komunikacji zdalnej programu Windows PowerShell, która korzysta z usługi WS-Management. Parametr ComputerName Get-WmiObject
można użyć nawet wtedy, gdy komputer nie jest skonfigurowany do uruchamiania poleceń zdalnych WS-Management.
Typ: | String[] |
Aliasy: | Cn |
Position: | Named |
Domyślna wartość: | None |
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. Nie można używać poświadczeń podczas określania wartości docelowej komputera lokalnego.
Typ: | PSCredential |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-DirectRead
Określa, czy zażądano bezpośredniego dostępu do dostawcy usługi WMI dla określonej klasy bez względu na klasę bazową, czy do jej klas pochodnych.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-EnableAllPrivileges
Włącza wszystkie uprawnienia bieżącego użytkownika przed wykonaniem polecenia 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 |
-Filter
Określa klauzulę Where , która ma być używana jako filtr. Używa składni języka zapytań WMI (WQL).
Ważne
Nie dołączaj słowa kluczowego Where w wartości parametru . Na przykład następujące polecenia zwracają tylko dyski logiczne, które mają identyfikator DeviceID usług c:
i o nazwie "WinRM" bez użycia słowa kluczowego Where .
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
Typ: | String |
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. Wartość domyślna jest zwykle ustawiona na 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
: Deleguj. 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 |
-List
Pobiera nazwy klas WMI w przestrzeni nazw repozytorium WMI, która jest określona przez parametr Przestrzeni nazw .
Jeśli określisz parametr List , ale nie parametr przestrzeni nazw , Get-WmiObject
domyślnie używa przestrzeni nazw Root\Cimv2 . To polecenie cmdlet nie używa domyślnego wpisu rejestru przestrzeni nazw w kluczu HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting
rejestru, aby określić domyślną przestrzeń nazw.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Locale
Określa preferowane ustawienia regionalne dla obiektów WMI. Wprowadź wartość w MS_<LCID>
formacie.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Namespace
W przypadku użycia z parametrem Class parametr przestrzeni nazw określa przestrzeń nazw repozytorium WMI, w której znajduje się określona klasa WMI. W przypadku użycia z parametrem List określa przestrzeń nazw, z której mają być zbierane informacje o klasie WMI.
Typ: | String |
Aliasy: | NS |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Property
Określa właściwości klasy WMI, z których to polecenie cmdlet pobiera informacje. Wprowadź nazwy właściwości.
Typ: | String[] |
Position: | 1 |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Query
Uruchamia określoną instrukcję języka WMI Query Language (WQL). Ten parametr nie obsługuje zapytań dotyczących zdarzeń.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Recurse
Wyszukuje bieżącą przestrzeń nazw i wszystkie inne przestrzenie nazw dla nazwy klasy określonej przez parametr Class .
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-ThrottleLimit
Określa maksymalną liczbę operacji WMI, które można wykonać jednocześnie. Ten parametr jest prawidłowy tylko wtedy, gdy parametr AsJob jest używany w poleceniu .
Typ: | Int32 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
Dane wejściowe
None
Nie można przekazać danych wejściowych potoku do Get-WmiObject
elementu .
Dane wyjściowe
PSObject or System.Management.Automation.RemotingJob
Gdy używasz parametru AsJob , polecenie cmdlet zwraca obiekt zadania. W przeciwnym razie zwracany obiekt Get-WmiObject
zależy od wartości parametru Class .
Uwagi
Program Windows PowerShell zawiera następujące aliasy dla programu Get-WmiObject
:
gwmi
Aby uzyskać dostęp do informacji usługi WMI na komputerze zdalnym, polecenie cmdlet musi działać na koncie należącym do lokalnej grupy administratorów na komputerze zdalnym. Można również zmienić domyślną kontrolę dostępu w przestrzeni nazw usługi WMI repozytorium zdalnego w celu udzielenia praw dostępu innym kontom.
Domyślnie wyświetlane są tylko niektóre właściwości każdej klasy WMI. Zestaw właściwości wyświetlanych dla każdej klasy WMI jest określony w Types.ps1xml
pliku konfiguracji. Aby uzyskać wszystkie właściwości obiektu WMI, użyj poleceń Get-Member
cmdlet lub Format-List
.