Следующее возвращает true для серверов без установленного графического интерфейса сервера:
WMIC PATH Win32_OptionalFeature WHERE "Caption = 'Microsoft-Windows-Server-Gui-Shell-Package-DisplayName' AND InstallState = 2"
Однако моя попытка перевести это в фильтр WMI ...
SELECT * FROM Win32_OptionalFeature WHERE Caption = Microsoft-Windows-Server-Gui-Shell-Package-DisplayName AND InstallState = 2
... не удалось:
Произошла синтаксическая ошибка при попытке оценить строку запроса.
... Что довольно бесполезно.
Что случилось и почему?
Я решил это, когда писал вопрос, и подумал, что поделюсь. Я обманул себя, введя команду WMIC, и не подумал о требовании цитируемых значений в довольно строгом синтаксисе WQL, используемом здесь:
SELECT * FROM Win32_OptionalFeature WHERE Caption = "Microsoft-Windows-Server-Gui-Shell-Package-DisplayName" AND InstallState = "2"
Скучное решение, но вот оно. Это заставило меня напиться, поэтому я подумал, что сэкономлю время на продуктивность кого-то другого.
Однако не позволяйте этому мешать вам пить. Это очень продуктивно.