about_WMI_Cmdlets

Krótki opis

Zawiera podstawowe informacje na temat instrumentacji zarządzania Windows (WMI) i środowiska Windows PowerShell.

Długi opis

Ten temat zawiera informacje na temat technologii WMI, poleceń cmdlet usługi WMI dla programu Windows PowerShell, komunikacji zdalnej opartej na usłudze WMI, akceleratorów WMI i rozwiązywania problemów z usługą WMI. Ten temat zawiera również linki do dodatkowych informacji o usłudze WMI.

INFORMACJE O USŁUDZE WMI

Instrumentacja zarządzania Windows (WMI) to opracowana przez firmę Microsoft technologia zarządzania przedsiębiorstwem opartego na sieci Web (WBEM). Jest to inicjatywa branżowa mająca na celu opracowanie standardowej technologii dostępu do informacji dotyczących zarządzania w środowisku przedsiębiorstwa. Usługa WMI korzysta ze standardu branżowego modelu wspólnych informacji (CIM), aby reprezentować systemy, aplikacje, sieci, urządzenia i inne zarządzane składniki. Model wspólnych informacji został opracowany i jest obsługiwany przez organizację Distributed Management Task Force (DMTF). Za pomocą usługi WMI można zarządzać komputerami lokalnymi i zdalnymi. Na przykład możesz użyć usługi WMI, aby wykonać następujące czynności:

  • Uruchom proces na komputerze zdalnym.
  • Zdalnie uruchom komputer.
  • Pobierz listę aplikacji zainstalowanych na komputerze lokalnym lub zdalnym.
  • Wykonaj zapytanie dotyczące dzienników zdarzeń systemu Windows na komputerze lokalnym lub zdalnym.

POLECENIA CMDLET USŁUGI WMI DLA PROGRAMU WINDOWS POWERSHELL

Program Windows PowerShell implementuje funkcje WMI za pomocą zestawu poleceń cmdlet, które są domyślnie dostępne w programie Windows PowerShell. Za pomocą tych poleceń cmdlet można wykonywać kompleksowe zadania niezbędne do zarządzania komputerami lokalnymi i zdalnymi.

Uwzględniono następujące polecenia cmdlet usługi WMI.

Polecenia cmdlet opis
Get-WmiObject Pobiera wystąpienia klas lub informacji usługi WMI
o dostępnych klasach.
Invoke-WmiMethod Wywołuje metody WMI.
Register-WmiEvent Subskrybuje zdarzenie WMI.
Remove-WmiObject Usuwa klasy i wystąpienia usługi WMI.
Set-WmiInstance Tworzy lub modyfikuje wystąpienia klas WMI.

PRZYKŁADOWE POLECENIA

Następujące polecenie wyświetla informacje o systemie BIOS dla komputera lokalnego.

C:\PS> get-wmiobject win32_bios | format-list *

Następujące polecenie wyświetla informacje o usłudze WinRM dla trzech komputerów zdalnych.

$wql = "select * from win32_service where name='WinRM'"
get-wmiobject -query $wql -computername server01, server01, server03

Następujące bardziej złożone polecenie kończy wszystkie wystąpienia programu.

C:\PS> notepad.exe
C:\PS> $wql = "select * from win32_process where name='notepad.exe'"
C:\PS> $np = get-wmiobject -query $wql
C:\PS> $np | remove-wmiobject

KOMUNIKACJA ZDALNA OPARTA NA USŁUDZE WMI

Chociaż możliwość zarządzania systemem lokalnym za pomocą usługi WMI jest przydatna, jest to możliwości komunikacji, dzięki czemu usługa WMI jest zaawansowanym narzędziem administracyjnym. Usługa WMI używa rozproszonego modelu obiektów składników (DCOM) firmy Microsoft do łączenia się z systemami i zarządzania nimi. Może być konieczne skonfigurowanie niektórych systemów w celu zezwolenia na połączenia DCOM. Ustawienia zapory i zablokowane uprawnienia MODELU DCOM mogą blokować możliwość zdalnego zarządzania systemami przez usługę WMI.

AKCELERATORY TYPÓW WMI

Program Windows PowerShell zawiera akceleratory typu WMI. Te akceleratory typu WMI (skróty) umożliwiają bardziej bezpośredni dostęp do obiektów WMI niż podejście akceleratora innego typu.

Akceleratory następujących typów są obsługiwane w usłudze WMI:

[WMISEARCHER] — skrót do wyszukiwania obiektów WMI.

[WMICLASS] — skrót do uzyskiwania dostępu do właściwości statycznych i metod klasy.

[WMI] — skrót do pobierania pojedynczego wystąpienia klasy.

[WMISEARCHER] to akcelerator typu dla obiektu ManagementObjectSearcher. Konstruktor ciągu może utworzyć element wyszukujący, na którym można wykonać polecenie GET().

Na przykład:

PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto

count  __PATH                                              name
-----  ------                                              ----
1105   \\SERVER01\root\cimv2:Win32_Process.Handle="3724"   PowerShell...
1132   \\SERVER01\root\cimv2:Win32_Process.Handle="1388"   winlogon.exe
1495   \\SERVER01\root\cimv2:Win32_Process.Handle="2852"   iexplore.exe
1699   \\SERVER01\root\cimv2:Win32_Process.Handle="1204"   OUTLOOK.EXE
1719   \\SERVER01\root\cimv2:Win32_Process.Handle="1912"   iexplore.exe
2579   \\SERVER01\root\cimv2:Win32_Process.Handle="1768"   svchost.exe

[WMICLASS] to akcelerator typów dla klasy ManagementClass. Ma to konstruktor ciągu, który przyjmuje lokalną lub bezwzględną ścieżkę WMI do klasy WMI i zwraca obiekt powiązany z tą klasą.

Na przykład:

PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
PS> $c |fl *
Name             : Win32_Process
__GENUS          : 1
__CLASS          : Win32_Process
__SUPERCLASS     : CIM_Process
__DYNASTY        : CIM_ManagedSystemElement
__RELPATH        : Win32_Process
__PROPERTY_COUNT : 45
__DERIVATION     : {CIM_Process, CIM_LogicalElement,
                   CIM_ManagedSystemElement}
__SERVER         : SERVER01
__NAMESPACE      : ROOT\cimv2
__PATH           : \\SERVER01\ROOT\cimv2:Win32_Process

[WMI] to akcelerator typu dla obiektu ManagementObject. Ma to konstruktor ciągu, który przyjmuje lokalną lub bezwzględną ścieżkę WMI do wystąpienia usługi WMI i zwraca obiekt powiązany z tym wystąpieniem.

Na przykład:

PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE

ROZWIĄZYWANIE PROBLEMÓW Z USŁUGĄ WMI

Poniższe problemy są najczęstszymi problemami, które mogą wystąpić podczas próby nawiązania połączenia z komputerem zdalnym.

Problem 1: Komputer zdalny nie jest w trybie online.

Jeśli komputer jest w trybie offline, nie będzie można nawiązać z nim połączenia przy użyciu usługi WMI. Może zostać wyświetlony następujący komunikat o błędzie:

Remote server machine does not exist or is unavailable

Jeśli zostanie wyświetlony ten komunikat o błędzie, sprawdź, czy komputer jest w trybie online. Spróbuj wysłać polecenie ping do komputera zdalnego.

Problem 2: Nie masz uprawnień administratora lokalnego na komputerze zdalnym.

Aby zdalnie korzystać z usługi WMI, musisz mieć uprawnienia administratora lokalnego na komputerze zdalnym. Jeśli tego nie zrobisz, dostęp do tego komputera zostanie odrzucony.

Aby zweryfikować zabezpieczenia przestrzeni nazw:

  1. Kliknij przycisk Start, kliknij prawym przyciskiem myszy pozycję Mój komputer, a następnie kliknij polecenie Zarządzaj.
  2. W obszarze Zarządzanie komputerem rozwiń węzeł Usługi i aplikacje, kliknij prawym przyciskiem myszy pozycję Kontrolka WMI, a następnie kliknij polecenie Właściwości.
  3. W oknie dialogowym Właściwości kontrolki usługi WMI kliknij kartę Zabezpieczenia.

Problem 3: Zapora blokuje dostęp do komputera zdalnego.

WMI używa protokołów DCOM (Distributed COM) i RPC (Remote Procedure Call) do przechodzenia przez sieć. Domyślnie wiele zapór blokuje ruch DCOM i RPC. Jeśli zapora blokuje te protokoły, połączenie zakończy się niepowodzeniem. Na przykład zapora systemu Windows w pakiecie Microsoft Windows XP z dodatkiem Service Pack 2 jest skonfigurowana tak, aby automatycznie blokowała cały niepożądany ruch sieciowy, w tym DCOM i WMI. W konfiguracji domyślnej Zapora systemu Windows odrzuca przychodzące żądanie WMI i otrzymuje następujący komunikat o błędzie:

Remote server machine does not exist or is unavailable

Zobacz też