我想设置系统的日期&通过从远程计算机读取当前信息的时间。该计算机位于域中。我使用下面的代码访问时区:
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命令来设置日期和时间。时间,但由于访问被拒绝错误,它也失败了。
此致
答案 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