Dela via


Ansluta till WMI via fjärranslutning med PowerShell

Windows PowerShell tillhandahåller en enkel mekanism för att ansluta till Windows Management Instrumentation (WMI) på en fjärrdator. Fjärranslutningar i WMI påverkas av Windows-brandväggen, DCOM-inställningar och UAC (User Account Control). Mer information om hur du konfigurerar fjärranslutningar finns i Ansluta till WMI fjärrstart med Windows Vista.

Exemplen i det här avsnittet baseras på VBScripts från Ansluta till WMI på en fjärrdator. Alla exempel i det här avsnittet använder cmdleten Get-WmiObject. Mer information finns i Get-WmiObject.

Windows PowerShell-exempel

När du skapar en anslutning till en fjärrdator kan en användare ange anslutningsinformation, till exempel namnet på fjärrdatorn, autentiseringsuppgifterna och autentiseringsnivån för anslutningen. Följande exempel visar hur du ansluter till en fjärrdator med hjälp av olika uppsättningar med autentiseringsuppgifter och hur du får åtkomst till WMI-information.

Följande Windows PowerShell-exempel visar hur personifieringsnivån anges:


Get-WmiObject -Namespace "root\cimv2" -Class Win32_Process -Impersonation 3 -ComputerName Computer_B

I föregående exempel ansluter användaren till en fjärrdator med samma autentiseringsuppgifter (domän och användarnamn) som de loggade in med. Användaren begärde också att personifiering skulle användas. Till skillnad från det ursprungliga VBScript-exemplet behövs ingen monikersträng eftersom personifieringsnivån anges av egenskapen "Personifiering". Personifieringsnivån är som standard inställd på 3 (Personifiera).

I exemplet visas alla instanser av klassen Win32_Process som körs på fjärrdatorn.

Not

Du bör ange WMI-namnområdet som ska anslutas till på fjärrdatorn eftersom det är möjligt att standardnamnområdet inte är detsamma på olika datorer.

 

Följande Windows PowerShell-exempel visar hur du ansluter till en fjärrdator med olika autentiseringsuppgifter och anger personifieringsnivån till 3, vilket är Personifiera:


$Computer = "atl-dc-01"

Get-WmiObject -Namespace "root\cimv2" -Class Win32_Process -Impersonation 3 -Credential `
FABRIKAM\administrator -ComputerName $Computer

I föregående exempel tilldelades datornamnet till variabeln $Computer. Användaren ansluter till en fjärrdator med hjälp av specifika autentiseringsuppgifter (domän och användarnamn) och begär personifiering för autentiseringsnivån.

Obs

Gravaccentertecknet (') används för att indikera en radbrytning. Det motsvarar understreckstecknet (_) i VBScript.

 

Följande Windows PowerShell-exempel ansluter till en grupp fjärrdatorer i samma domän genom att skapa en matris med fjärrdatornamn och sedan visa namnen på Plug and Play-enheterna – instanser av Win32_PnPEntity– på varje dator:

$ArrComputers = "Computer1", "Computer2", "Computer3"
foreach ($Computer in $ArrComputers) 
{
write-host ""
write-host "===================================="
write-host "Computer: $Computer"
write-host "===================================="

write-host "-----------------------------------"
write-host "Win32_PnPEntity instance"
write-host "-----------------------------------"

$ColItems = Get-WmiObject -Class Win32_PnPEntity -Namespace "root\cimv2" -Computer $Computer
$ColItems[0..47] | Format-List Name, Status
}

Anteckning

Om du vill köra föregående Windows PowerShell-skript måste du vara administratör på fjärrdatorerna. Observera även följande i föregående exempel:

 

  • Datornamnen i matrisen måste omges av citattecken eftersom de är strängar.
  • Objekten som returneras av Get-WmiObject tilldelas till variabeln $ColItems.
  • Intervalloperatorn [] begränsade listan över Plug and Play-enheter till 48 instanser. Mer information finns i About_Operators.
  • |är pipelinetecknet. Objektet som returneras av ColItems skickas till cmdleten Format-List.

I följande Windows PowerShell-exempel kan du ansluta till en fjärrdator på en annan domän. I det här exemplet visas även processnamnen för instanser av Win32_Process på fjärrdatorn.

$Computer = "FullComputerName" 
$Domain = "DOMAIN"
$Credential = Get-Credential
$ColItems = Get-WmiObject -Class Win32_Process -Authority "ntlmdomain:$Domain" `
-Credential $Credential -Locale "MS_409" -Namespace "root\cimv2"  -ComputerName $Computer

foreach ($ObjItem in $colItems) 
{
write-host "Process Name:" $ObjItem.name
}

Not

Om du vill köra föregående Windows PowerShell-skript måste du vara administratör på fjärrdatorn.

 

I föregående exempel ansluter användaren till en fjärrdator på en annan domän och anger ett föredraget språk. Kommandot Get-Credential begär användarens autentiseringsuppgifter och tilldelar autentiseringsuppgifterna till ett objekt. I exemplet visas även namnen på instanser av klassen Win32_Process som körs på datorn.

Ansluta till WMI på en fjärrdator