组策略WMI筛选以检查是否安装了Windowsfunction

对于未安装Server GUI的服务器,以下返回true:

WMIC PATH Win32_OptionalFeature WHERE "Caption = 'Microsoft-Windows-Server-Gui-Shell-Package-DisplayName' AND InstallState = 2" 

不过,我试图将其转换成WMIfilter…

 SELECT * FROM Win32_OptionalFeature WHERE Caption = Microsoft-Windows-Server-Gui-Shell-Package-DisplayName AND InstallState = 2 

…失败:

尝试评估查询string时发生语法错误。

…这是相当无益的。

什么是失败,为什么?

我在写这个问题时解决了这个问题,并认为我会分享。 当我敲打WMIC命令时我欺骗了自己,并没有考虑在这里使用的相当严格的WQL语法中引用值的要求:

 SELECT * FROM Win32_OptionalFeature WHERE Caption = "Microsoft-Windows-Server-Gui-Shell-Package-DisplayName" AND InstallState = "2" 

无聊的解决scheme,但是你有它。 它驱使我喝酒,所以我想我会拯救别人未来的生产力时间。

不过,不要让它阻止你喝酒。 这是丰富的生产力。