我在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

这大致就是这样,显然我声明了变量并具有另一个日期函数等。

如果我是本地管理员,则可以将“ Localhost”称为“ Localhost”。但是,当对远程服务器进行WMI调用时,只有在我使用广告管理员帐户登录到本地计算机时才有效。

有什么方法可以提示用户获取用户名和密码,然后将其传递给WMI调用,以便像任何人一样使用管理员详细信息?

有帮助吗?

解决方案

看起来像 swbemlocator.connectServer 方法允许您在连接到远程计算机时指定用户名和密码。看起来您需要使用的语法相似,您只需要创建自己的语法 objWMIService 对象的不同:

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

如果您在Google上搜索“ wbemscripting.swbemlocator”,可以提供更多文档

其他提示

作为域管理员,您将能够在帐户中添加额外的权利,这将使您能够以任何其他用户的身份开始流程。广告中的此权利称为“允许用户被信任委托”。它非常强大。这是作为另一个用户运行任务的唯一合法方式。查看此链接以设置正确:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top