Я пытаюсь записать в VBScript процесс проверки пространства имен TPM на ПК (поскольку я считаю, что это невозможно в виде пакетного файла) и, если это версия 2.0, вернуть эхо-запрос «ДА», но пока он кажетсятолько возвращать значение ЛОЖЬ, хотя я знаю, что правильный результат - ИСТИНА (2.0, 0, 1.16).
Если я смогу получить "TPM SpecVersion" в своем операторе If
, я в конечном итоге заставлю скрипт запустить утилиту понижения во время сборок PXE, но сейчас я просто использую echo, чтобы я мог получитьИдентификация версии TPM выяснена.
Это то, что я до сих пор взламывал (dev2.vbs
):
Dim strTPM
strTPM = "wmic /namespace:\\root\cimv2\security\microsofttpm path win32_tpm get SpecVersion"
If strTPM = "%2.0%" Then
WScript.Echo "YES"
Else
WScript.Echo "Nup"
End If
Я знаю, что могу запустить запрос wmic
в командной строке и получить правильную версию TPMно я не могу получить этот результат, чтобы правильно представить себя в этом сценарии.Я получаю эхо-всплывающее окно "Nup" каждый раз.
Я пробовал несколько альтернативных синтаксисов из онлайн-сценариев VBScripts, которые ссылаются на активные службы, включая следующие, но все они содержат ошибки и даже не дают ложного результата эха.
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colServices = objWMIService.ExecQuery("SELECT * FROM Win32_TPM WHERE SpecVersion='%2.0%'")
For Each objtpm In colItem
Return = objSpecVersion.Value()
If Return = "%2.0%" Then
WScript.Echo "YES YES YES"
Else
WScript.Echo "Nup"
End If
Next
Может ли кто-нибудь помочь мне получить результаты поиска в пространстве имен для фильтрации до операторов If..Else
под ним?
Я бы хотел избежать PowerShell, если смогу.