Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan skapa en fjärranslutning till WMI med VBScript genom att skapa ett anslutningsobjekt. Det här objektet innehåller namnet på datorn, det WMI-namnområde som du vill ansluta till samt eventuella relevanta autentiseringsuppgifter och autentiseringsnivåer.
Ansluta till ett fjärrsystem med VBScript-
Ange anslutningsinformationen, till exempel namnet på fjärrdatorn, autentiseringsuppgifterna och autentiseringsnivån för anslutningen.
Om du ansluter till en fjärrdator med samma autentiseringsuppgifter (domän och användarnamn) som du är inloggad med kan du ange anslutningsinformationen i en GetObjectmoniker, enligt beskrivningen i följande kodexempel.
strComputer = "Computer_B" Set objWMIService = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & strComputer & "\Root\CIMv2")Generellt sett bör du ange det WMI-namnområde som ska anslutas till på fjärrdatorn. Det beror på att det är möjligt att standardnamnområdet inte är detsamma på olika datorer. Om du anger namnområdet ser du till att du ansluter till samma namnområde på alla datorer.
Mer information om VBScript-konstanter och skriptsträngar för användning av moniker-anslutningen finns i Ange standardprocesssäkerhetsnivå med VBScript-.
Om du ansluter till en fjärrdator i en annan domän eller använder ett annat användarnamn och lösenord måste du använda metoden SWbemLocator.ConnectServer.
Precis som med en moniker använder du ConnectServer- för att ange autentiseringsuppgifter, autentiseringsnivå och namnrymd för fjärranslutningen. Följande kodexempel beskriver hur du använder ConnectServer för att komma åt en fjärrdator med hjälp av ett administratörskonto och lösenord.
strComputer = "Computer_B" Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _ "Root\CIMv2", _ "fabrikam\administrator", _ "password")När du använder funktionen ConnectServer för fjärranslutningar anger du personifiering och autentisering för säkerhetsobjektet som erhålls av ett anrop till SWbemServices.Security. Du kan använda uppräkningen WbemImpersonationLevelEnum för att ange personifieringsnivå.
Följande kodexempel anger personifieringsnivån för det tidigare VBScript-kodexemplet.
objSWbemServices.Security_.ImpersonationLevel = 3Observera att vissa anslutningar kräver en specifik autentiseringsnivå. Mer information finns i Ange klientprogramprocesssäkerhet och Skydda skriptklienter.
Du bör särskilt ange autentiseringsnivån till RPC_C_AUTHN_LEVEL_PKT_PRIVACY eller 6 om namnområdet som du ansluter till på fjärrdatorn kräver en krypterad anslutning innan data returneras. Du kan också använda den här autentiseringsnivån, även om namnområdet inte kräver det. Detta säkerställer att data krypteras när de passerar nätverket. Om du försöker ange en lägre autentiseringsnivå än vad som tillåts returneras ett meddelande om nekad åtkomst. Mer information finns i Kräver en krypterad anslutning till ett namnområde.
När du har upprättat anslutningen kan du fortsätta att komma åt WMI-data. För mer information, se WMI-uppgifter för skript och program.
Exempel
Ett större VBScript-exempel finns i avsnittet Exempel på referenssidan SWbemLocator.ConnectServer.
Följande VBScript-kodexempel 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. Om du vill köra skriptet nedan måste du vara administratör på fjärrdatorerna. Observera att "\\" som krävs framför namnet på fjärrdatorn läggs till av skriptet efter inställningen av impersoneringsnivån. Mer information om WMI-sökvägar finns i Beskriva platsen för ett WMI-objekt.
On Error Resume Next 
arrComputers = Array("Computer1","Computer2","Computer3")
For Each strComputer In arrComputers
    WScript.Echo
    WScript.Echo "===================================="
    WScript.Echo "Computer: "& strComputer
    WScript.Echo "===================================="
    Set objWMIService = GetObject("winmgmts:\\" & strComputer& "\Root\CIMv2") 
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PnPEntity",,48) 
    For Each objItem in colItems 
        Wscript.Echo "-----------------------------------"
        Wscript.Echo "Win32_PnPEntity instance"
        Wscript.Echo "-----------------------------------"
        Wscript.Echo "Name: "& objItem.Name
        Wscript.Echo "Status: "& objItem.Status
    Next
Next
Med följande VBScript-kodexempel kan du ansluta till en fjärrdator med olika autentiseringsuppgifter. Till exempel en fjärrdator i en annan domän eller anslutning till en fjärrdator som kräver ett annat användarnamn och lösenord. I det här fallet använder du anslutningen SWbemServices.ConnectServer.
' Full Computer Name
' can be found by right-clicking My Computer,
' then click Properties, then click the Computer Name tab)
' or use the computer's IP address
strComputer = "FullComputerName" 
strDomain = "DOMAIN" 
Wscript.StdOut.Write "Please enter your user name:"
strUser = Wscript.StdIn.ReadLine 
Set objPassword = CreateObject("ScriptPW.Password")
Wscript.StdOut.Write "Please enter your password:"
strPassword = objPassword.GetPassword()
 
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, _
                                                     "Root\CIMv2", _
                                                     strUser, _
                                                     strPassword, _
                                                     "MS_409", _
                                                     "ntlmdomain:" + strDomain)
Set colSwbemObjectSet = objSWbemServices.ExecQuery("Select * From Win32_Process")
For Each objProcess in colSWbemObjectSet
    Wscript.Echo "Process Name: " & objProcess.Name 
Next
Relaterade ämnen