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 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 zmian
  • 0: Wartość domyślna
  • 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 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\User01lub 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-WmiObjectelementu .

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 .