Dela via


about_WMI_Cmdlets

Kort beskrivning

Innehåller bakgrundsinformation om Windows Management Instrumentation (WMI) och Windows PowerShell.

Lång beskrivning

Det här avsnittet innehåller information om WMI-teknik, WMI-cmdletar för Windows PowerShell, WMI-baserad fjärrkommunikation, WMI-acceleratorer och WMI-felsökning. Det här avsnittet innehåller även länkar till mer information om WMI.

OM WMI

Windows Management Instrumentation (WMI) är Microsofts implementering av webbaserad företagshantering (WBEM), som är ett branschinitiativ för utveckling av en standardteknik för åtkomst av hanteringsinformation i en företagsmiljö. WMI använder branschstandarden CIM (Common Information Model) för att representera system, program, nätverk, enheter och andra hanterade komponenter. CIM har utvecklats och underhålls av DMTF (Distributed Management Task Force). Du kan använda WMI för att hantera både lokala datorer och fjärrdatorer. Du kan till exempel använda WMI för att göra följande:

  • Starta en process på en fjärrdator.
  • Starta om en dator via fjärranslutning.
  • Hämta en lista över de program som är installerade på en lokal dator eller fjärrdator.
  • Fråga Windows-händelseloggarna på en lokal eller fjärransluten dator.

WMI-CMDLETAR FÖR WINDOWS POWERSHELL

Windows PowerShell implementerar WMI-funktioner via en uppsättning cmdletar som är tillgängliga i Windows PowerShell som standard. Du kan använda dessa cmdletar för att slutföra de uppgifter från slutpunkt till slutpunkt som krävs för att hantera lokala datorer och fjärrdatorer.

Följande WMI-cmdletar ingår.

Cmdlet beskrivning
Get-WmiObject Hämtar instanser av WMI-klasser eller information
om de tillgängliga klasserna.
Invoke-WmiMethod Anropar WMI-metoder.
Register-WmiEvent Prenumererar på en WMI-händelse.
Remove-WmiObject Tar bort WMI-klasser och instanser.
Set-WmiInstance Skapar eller ändrar instanser av WMI-klasser.

EXEMPELKOMMANDON

Följande kommando visar BIOS-informationen för den lokala datorn.

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

Följande kommando visar information om WinRM-tjänsten för tre fjärrdatorer.

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

Följande mer komplexa kommando avslutar alla instanser av ett program.

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

WMI-BASERAD FJÄRRKOMMUNIKATION

Även om möjligheten att hantera ett lokalt system via WMI är användbar är det fjärrkommunikationsfunktionerna som gör WMI till ett kraftfullt administrativt verktyg. WMI använder Microsofts DCOM (Distributed Component Object Model) för att ansluta till och hantera system. Du kan behöva konfigurera vissa system för att tillåta DCOM-anslutningar. Brandväggsinställningar och låsta DCOM-behörigheter kan blockera WMI:s möjlighet att fjärrhantera system.

ACCELERATORER AV WMI-TYP

Windows PowerShell innehåller acceleratorer av WMI-typ. Dessa WMI-typacceleratorer (genvägar) ger mer direkt åtkomst till ett WMI-objekt än vad en acceleratormetod som inte är av typen tillåter.

Följande typacceleratorer stöds med WMI:

[WMISEARCHER] – en genväg för att söka efter WMI-objekt.

[WMICLASS] – en genväg för att komma åt statiska egenskaper och metoder för en klass.

[WMI] – en genväg för att hämta en enda instans av en klass.

[WMISEARCHER] är en typaccelerator för en ManagementObjectSearcher. Det kan krävas en strängkonstruktor för att skapa en sökare som du sedan kan göra en GET() på.

Till exempel:

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] är en typaccelerator för ManagementClass. Detta har en strängkonstruktor som tar en lokal eller absolut WMI-sökväg till en WMI-klass och returnerar ett objekt som är bundet till den klassen.

Till exempel:

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] är en typaccelerator för ManagementObject. Detta har en strängkonstruktor som tar en lokal eller absolut WMI-sökväg till en WMI-instans och returnerar ett objekt som är bundet till den instansen.

Till exempel:

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

WMI-FELSÖKNING

Följande problem är de vanligaste problemen som kan uppstå när du försöker ansluta till en fjärrdator.

Problem 1: Fjärrdatorn är inte online.

Om en dator är offline kan du inte ansluta till den med hjälp av WMI. Du kan få följande felmeddelande:

Remote server machine does not exist or is unavailable

Om du får det här felmeddelandet kontrollerar du att datorn är online. Försök att pinga fjärrdatorn.

Problem 2: Du har inte lokal administratörsbehörighet på fjärrdatorn.

Om du vill använda WMI via fjärranslutning måste du ha lokal administratörsbehörighet på fjärrdatorn. Om du inte gör det nekas åtkomst till den datorn.

Så här verifierar du namnområdessäkerhet:

  1. Klicka på Start, högerklicka på Min dator och klicka sedan på Hantera.
  2. I Datorhantering expanderar du Tjänster och program, högerklickar på WMI-kontroll och klickar sedan på Egenskaper.
  3. I dialogrutan Egenskaper för WMI-kontroll klickar du på fliken Säkerhet.

Problem 3: En brandvägg blockerar åtkomsten till fjärrdatorn.

WMI använder protokollen DCOM (Distributed COM) och RPC (Remote Procedure Call) för att passera nätverket. Som standard blockerar många brandväggar DCOM- och RPC-trafik. Om brandväggen blockerar dessa protokoll misslyckas anslutningen. Windows-brandväggen i Microsoft Windows XP Service Pack 2 är till exempel konfigurerad för att automatiskt blockera all oönskad nätverkstrafik, inklusive DCOM och WMI. I sin standardkonfiguration avvisar Windows-brandväggen en inkommande WMI-begäran och du får följande felmeddelande:

Remote server machine does not exist or is unavailable

Se även