Question

Je VBScript dans une HTA obtenir le statut de ping à partir d'un appel WMI locale .. j'ai aussi une fonction pour obtenir la dernière fois de redémarrage de l'ordinateur distant ..

Function GetReboot(strComputer)
    Set objWMIService = GetObject _
        ("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colOperatingSystems = objWMIService.ExecQuery _
        ("Select * from Win32_OperatingSystem")
    For Each objOS in colOperatingSystems
        dtmBootup = objOS.LastBootUpTime
        dtmLastBootupTime = WMIDateStringToDate(dtmBootup)
        dtmSystemUptime = DateDiff("h", dtmLastBootUpTime, Now)
        Wscript.Echo dtmSystemUptime
    Next
    GetReboot = dtmLastbootupTime
End Function

C'est à peu près ce qu'elle est, évidemment je déclarer les variables et ont une autre fonction de la date etc ..

Cela fonctionne si je l'appelle WMI « localhost » comme je suis un administrateur local .. mais lorsque vous faites l'appel WMI à un serveur distant cela ne fonctionne que si je suis connecté à ma machine locale avec un compte administrateur AD.

Y at-il une manière que je peux demander à l'utilisateur un nom d'utilisateur et mot de passe, puis passer à l'appel que WMI il fonctionne comme tout le monde juste avec les détails d'administration?

Était-ce utile?

La solution

Il semble que le SWbemLocator.ConnectServer méthode vous permet de spécifier un nom d'utilisateur et mot de passe lors de la connexion à des ordinateurs distants. Il ressemble à la syntaxe que vous devez utiliser est similaire, il vous suffit de créer votre objet objWMIService différemment:

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
Set objWMIService = objSWbemLocator.ConnectServer("MachineName", "root\cimv2", "Username", "Password")

Plus de documentation est disponible si vous recherchez "WbemScripting.SWbemLocator" sur Google

Autres conseils

En tant qu'administrateur de domaine, vous seriez en mesure d'ajouter un droit supplémentaire à votre compte, ce qui vous permettra de lancer des processus comme tout autre utilisateur. Ce droit dans AD est appelé « Permettre à l'utilisateur à être approuvé pour la délégation ». Il est extrêmement puissant. Il est le seul moyen légitime d'exécuter votre tâche comme un autre utilisateur. Voir ce lien pour définir le droit:

http://support.microsoft.com/kb/932455

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top