med*_*oix 6 vbscript wmi credentials hta
我在HTA中有VBScript从本地WMI调用获取ping状态..我还有一个函数来获取远程pc的最后一次重启时间..
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
Run Code Online (Sandbox Code Playgroud)
这大致就是它,显然我声明了变量,并有另一个日期函数等.
如果我WMI调用"localhost",因为我是本地管理员,这是有效的.但是当对远程服务器进行WMI调用时,这只有在我使用AD管理员帐户登录到本地计算机时才有效.
有没有办法可以提示用户输入用户名和密码,然后将其传递给WMI调用,以便它可以像管理员详细信息一样工作?
看起来SWbemLocator.ConnectServer方法允许您在连接到远程计算机时指定用户名和密码.看起来您需要使用的语法类似,您只需要以objWMIService不同方式创建对象:
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer("MachineName", "root\cimv2", "Username", "Password")
Run Code Online (Sandbox Code Playgroud)
如果您在Google上搜索"WbemScripting.SWbemLocator",则可以获得更多文档