我正在尝试查询服务器模型并基于特定类型的模型然后运行其他一些代码。
我已完成以下操作但我运行的服务器不是Gen9
而是VMware
因此,结果将返回到下面的Else
语句 - 这是我期望的结果不正确。
如果我运行调试,那么colItems
是空的(即这是真的,因为我运行的服务器是VMWare) - 是我对此问题的陈述 - 即,我认为它不应该是什么,但无法找到还有什么我可以改变它? If colItems Is Nothing Then
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystem Where Model Like 'Gen9%'")
If colItems Is Nothing Then
WScript.Echo "This is not a Gen9 Server"
Else
WScript.Echo "This IS a Gen9 Server"
End If
结果:(这是我期待的结果不正确)
D:\>cscript Intel_Teaming_Install.vbs
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.
This IS a Gen9 Server
答案 0 :(得分:1)
如果服务器匹配查询,则无关紧要。 objWMIService.ExecQuery
调用将始终(如果没有错误)返回集合。此集合将保存匹配的实例或将为空(集合中没有项目)。
在你的情况下
If colItems.Count < 1 Then
WScript.Echo "This is not a Gen9 Server"
Else
WScript.Echo "This IS a Gen9 Server"
End If