2015-05-12 3 views
0

Я пытаюсь запросить серверную модель и на основе определенного типа модели, а затем запустить другой код.Как я могу фильтровать модель сервера?

я сделал ниже, но сервер я запустил его на это не 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 

ответ

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 
+0

спасибо за это - прекрасно работает. – lara400

Смежные вопросы