1

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

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 命令设置日期和时间,但由于访问被拒绝错误,它也失败了。

问候,

4

1 回答 1

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

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

谢谢你的帮助。

问候,

迪佩什

于 2012-05-03T10:46:59.833 回答