Passez Lettres de créance à WMI appel en VBScript
-
30-09-2019 - |
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?
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: