设定日期和时间在vb中通过WMI的时间

时间:2012-05-02 11:14:24

标签: datetime vbscript wmi

我想设置系统的日期&通过从远程计算机读取当前信息的时间。该计算机位于域中。我使用下面的代码访问时区:

Set objWMIService = GetObject("winmgmts:\\" & ServerAddress & "\root\cimv2")
Set oRemoteItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")

For Each o In oRemoteItems
    ServerTime = o.StandardName
    Exit Function
Next

但此代码无效。我收到访问被拒绝错误(5)。请告诉我在哪里做错了?我也需要冒充用户,因为在工作组上 - >两台机器上的工作组用户是相同的。但是在工作组上 - >两个系统上的域用户都不同。请建议如何冒充并使用上述代码?

另外,我正在使用net time命令来设置日期和时间。时间,但由于访问被拒绝错误,它也失败了。

此致

1 个答案:

答案 0 :(得分:2)

我终于实现了它:..)

以下代码会告诉您时区,日期和时间;远程系统的时间,无论远程系统是在域还是工作组中。只需要考虑的是,在代码下运行的用户必须是工作组或域的管理员。

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(remoteserver,"root\CIMV2",adminuser,adminpassword,"MS_409","")

Set oRemoteItems = objWMIService.ExecQuery("Select * from Win32_TimeZone")

For Each o In oRemoteItems
    sServerTimezone = o.StandardName
Next

MsgBox sServerTimezone

'在谷歌上搜索Win32_TimeZone,你会发现日期和时间的其他参数;除StandardName之外的时间

感谢您的帮助。

此致

Dipesh