VBScript运行时错误:需要的对象(Windows 2003)
问题描述:
试图从函数结果返回字符串结果所需对象错误。 这段代码运行在Windows 2003。注意:在W2K3,Win32_OperatingSystem
不 不支持[email protected]
单这就是为什么我们使用For Each .../Exit Function
VBScript运行时错误:需要的对象(Windows 2003)
Function GetLocalTime()
Dim wmi, itm
Set wmi = GetObject("winmgmts:root\cimv2")
For Each itm in wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem")
' NEXT LINE THROWS 'Object required' error
GetLocalTime = itm.LocalDateTime
Exit Function
Next
End Function
Dim started : Set started = GetLocalTime
WScript.Echo "started " & started
答
想通了。报告的错误消息发生在GetLocalTime()
函数的主体内,但错误实际上来自调用。需要删除Set
。这里是更正的代码:
Function GetLocalTime()
Dim wmi, itm
Set wmi = GetObject("winmgmts:root\cimv2")
For Each itm in wmi.ExecQuery("SELECT * FROM Win32_OperatingSystem")
GetLocalTime = itm.LocalDateTime
Exit Function
Next
End Function
Dim started : started = GetLocalTime ' <-- CHANGED LINE
WScript.Echo "started " & started