Min kod: I andra exemplet ska du ha med Fortfarande fel: Samma användare i båda fallen ovan. Då vet jag inte, men troligen är det någon säkerhetsinställning någonstans som förhindrar det ;)Impersonate, något är fel
strComputer = "printerserver"
strUser = "användarnamn"
strPassword = "lösenord"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
objSWbemLocator.Security_.ImpersonationLevel = 3
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "root\cimv2", strUser, strPassword)
Ovanstående fungerar.
Men om jag vill använda den inloggade användaren:
strComputer = "printerserver"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Så får jag access denied även om det är samma användarkonto som kör nedanstående alternativ som jag har hårdkodat in i första kodstycket.Sv: Impersonate, något är fel
objSWbemLocator.Security_.ImpersonationLevel = 3
("credentials of the caller")
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/setting_the_default_process_security_level_using_vbscript.aspSv:Impersonate, något är fel
Access is denied.
-2147024891
WebbServern är alltså inte samma som printservern om det kan ställa till det ?Sv:Impersonate, något är fel
Och ja användaren är local admin på bådaSv: Impersonate, något är fel
Gäller bara att hitta var..
Googla på
WbemScripting SWbemLocator access denied
(även Google Groups)