如何过滤服务器型号?

how can I filter model of server?

我正在尝试查询服务器模型并基于特定类型的模型然后 运行 一些其他代码。

我已经完成了下面的操作,但是我 运行 它所在的服务器不是 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

服务器是否匹配查询并不重要。 objWMIService.ExecQuery 调用将始终(如果没有错误)return 一个集合。此集合将包含匹配的实例或为空(集合中没有项目)。

你的情况

If colItems.Count < 1 Then 
     WScript.Echo "This is not a Gen9 Server"
Else
    WScript.Echo "This IS a Gen9 Server"
End If