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 Windows PowerShell do wykonywania operacji zdalnych.
Możesz użyć parametru Get-WmiObject
ComputerName polecenia cmdlet, nawet jeśli komputer nie spełnia wymagań dotyczących komunikacji wirtualnej Windows PowerShell lub nie jest skonfigurowany do komunikacji wirtualnej w Windows PowerShell.
Począwszy od Windows PowerShell 3.0, właściwość __Server obiektu, który Get-WmiObject
zwraca, ma alias PSComputerName. Ułatwia to dołączanie 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
Ten przykład pobiera klasy WMI 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
W tym przykładzie usługa WinRM jest pobierana 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 odpowiednik użycia Stop-Service
polecenia cmdlet .
Przykład 6: Pobieranie systemu BIOS na komputerze lokalnym
W tym przykładzie są pobierane 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ą lokalizowalnymi informacjami, takimi jak opisy obiektów i właściwości, które są dołączone do obiektu WMI.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 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 polecenia cmdlet zadania. Aby uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
Uwaga
Aby użyć tego parametru z komputerami zdalnymi, należy skonfigurować komputery lokalne i zdalne do komunikacji zdalnej. Ponadto należy uruchomić 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ń Windows PowerShell w tle, zobacz about_Jobs i about_Remote_Jobs.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Authentication
Określa poziom uwierzytelniania, który ma być używany z połączeniem usługi WMI. Prawidłowe wartości:
- -1: Bez zmian
- 0: Ustawienie domyślne
- 1: 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 odebranych 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).
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
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 uwzględnić ustawienia urzędu podczas nawiązywania połączenia z komputerem lokalnym.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Class
Określa nazwę klasy WMI. Gdy ten parametr jest używany, polecenie cmdlet pobiera wystąpienia klasy WMI.
Type: | String |
Aliases: | ClassName |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Określa komputer docelowy dla operacji zarządzania. Wprowadź w pełni kwalifikowaną nazwę domeny (FQDN), nazwę NetBIOS lub adres IP. Jeśli komputer zdalny znajduje się w innej domenie niż komputer lokalny, wymagana jest w pełni kwalifikowana nazwa domeny.
Wartością domyślną jest komputer lokalny. Aby określić komputer lokalny, na przykład na liście nazw komputerów, użyj wartości "localhost", nazwy komputera lokalnego lub kropki (.).
Ten parametr nie polega na Windows PowerShell komunikacji zdalniej, która korzysta z usługi WS-Management. Można użyć parametruGet-WmiObject
ComputerName, nawet jeśli komputer nie jest skonfigurowany do uruchamiania WS-Management poleceń zdalnych.
Type: | String[] |
Aliases: | Cn |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DirectRead
Określa, czy zażądano bezpośredniego dostępu do dostawcy usługi WMI dla określonej klasy bez względu na jej klasę bazową lub do jej klas pochodnych.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-EnableAllPrivileges
Włącza wszystkie uprawnienia bieżącego użytkownika przed wykonaniem wywołania usługi WMI.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 do wartości parametru . Na przykład następujące polecenia zwracają tylko dyski logiczne, które mają identyfikator DeviceID "c:" i usługi o nazwie "WinRM" bez użycia słowa kluczowego Where .
Get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' "
Get-WmiObject win32_service -filter "name='WinRM'"
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Impersonation
Określa poziom personifikacji do użycia.
Dopuszczalne wartości dla 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. Delegowanie. Umożliwia obiektom zezwolenie innym obiektom na używanie poświadczeń obiektu wywołującego.
Type: | ImpersonationLevel |
Accepted values: | Default, Anonymous, Identify, Impersonate, Delegate |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 Lista , 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 w celu określenia domyślnej przestrzeni nazw.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Locale
Określa preferowane ustawienia regionalne dla obiektów WMI. Wprowadź wartość w formacie MS_<LCID> .
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 Lista określa przestrzeń nazw, z której mają być zbierane informacje o klasie WMI.
Type: | String |
Aliases: | NS |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Property
Określa właściwości klasy WMI, z których to polecenie cmdlet pobiera informacje. Wprowadź nazwy właściwości.
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Query
Uruchamia określoną instrukcję WMI Query Language (WQL). Ten parametr nie obsługuje zapytań dotyczących zdarzeń.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Recurse
Wyszukuje bieżącą przestrzeń nazw i wszystkie inne przestrzenie nazw dla nazwy klasy określonej przez parametr Class .
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ThrottleLimit
Określa maksymalną liczbę operacji WMI, które mogą być wykonywane jednocześnie. Ten parametr jest prawidłowy tylko wtedy, gdy parametr AsJob jest używany w poleceniu .
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
None
Nie można przekazać danych wejściowych potoku do elementu Get-WmiObject
.
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
Aby uzyskać dostęp do informacji usługi WMI na komputerze zdalnym, polecenie cmdlet musi być uruchamiane na koncie należącym do lokalnej grupy administratorów na komputerze zdalnym. Alternatywnie można zmienić domyślną kontrolę dostępu w przestrzeni nazw usługi WMI repozytorium zdalnego w celu udzielenia praw dostępu do innych kont.
Domyślnie są wyświetlane 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 pliku konfiguracji Types.ps1xml. Aby uzyskać wszystkie właściwości obiektu WMI, użyj poleceń Get-Member
cmdlet lub Format-List
.