Udostępnij za pośrednictwem


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

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-WmiObjectComputerName 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-ListProperty 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-WmiObjectCredential 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 .