有没有办法确定哪些客户端机器安装了来自 GPO 的软件?

bsa*_*mek 3 deployment group-policy

如果我用 GPO 分配软件,我假设客户端机器下次重新启动时会安装它。但是,如果不亲自拜访每个客户并检查自己,我就无法确定。有没有办法检查哪些客户端安装了软件(如使用 WSUS)或编写脚本来检查客户端上已安装软件的版本?

Chr*_*s S 5

GPO 没有任何内置的报告机制。任何不错的配置管理软件都可以报告已安装的内容,或者您​​可以编写脚本。


警告Microsoft 推荐的以下代码存在严重问题。请参阅此答案下方的评论,其中包含 2009 年“快速发布”(即紧急情况)知识库文章的链接。


如果您使用的是相当新的计算机 (Vista/2008+),您可以使用 PowerShell:gwmi -comp computer_name Win32_Product来获取已安装软件的列表。它返回如下信息:

IdentifyingNumber : {D11F66FF-82B3-DDB8-1146-525370552BE1}
Name              : Windows Software Development Kit for Windows Store Apps
Vendor            : Microsoft Corporation
Version           : 8.59.25584
Caption           : Windows Software Development Kit for Windows Store Apps
Run Code Online (Sandbox Code Playgroud)

这可以进一步编写脚本以生成安装了各种版本的特定软件的计算机列表,导出到 CVS 或其他 ODBC 连接或各种任务......取决于您正在寻找什么。这个过程有点麻烦,所以你可能想考虑运行这个“-AsJob”来并行运行多个查询。

  • Win32_Product 是邪恶的(认真的)。http://support.microsoft.com/kb/974524 (2认同)