我们的域有一个 KMS 激活服务器和许多虚拟桌面、常规桌面和笔记本电脑,它们都安装了 Office 2010 或 2013。它们中的大多数应该是 32 位 Office,但我知道其中一些是 64 位。有没有办法(使用系统中心、powershell、active directory,???)获取一份可读的报告,了解哪些计算机安装了哪个版本的 Office?
我使用了典型的应用程序监视器,但是它给出了大量与办公相关的组件列表,其中包括看起来像是 64 位办公组件的桥梁的东西,即使这些机器安装了 32 位办公。
感谢您的任何帮助!
答案1
我使用 Get-InstalledSoftware_32_And_64.ps1。它非常有用,可以满足您的需求。您甚至可以设置它,使用一些额外的脚本向计算机对象添加扩展属性,然后利用这些扩展与其他 AD 组件配合使用。但这超出了本回答的范围。
https://gallery.technet.microsoft.com/scriptcenter/PowerShell-Installed-70d0c0f4
这是获取列表的简单方法。
笔记:这依赖于在运行以下脚本之前Get-InstalledSoftware_32_And_64.ps1
进行设置。Import-Module
# Import AD module
Import-Module ActiveDirectory
# Setup array of computer names
$computers = Get-ADComputer -Filter 'ObjectClass -eq "Computer"' | Select -Expand DNSHostName
# foreach loop - do stuff...
foreach ( $computer in $computers ) {
$output = Get-SoftwareList -Computername $computer | Select-String "Microsoft Office 2013"
if ( $output -match "64" ) {
echo "$computer >> Office2013-64_Installs.txt"
}
elseif ( $output -match "32" ) {
echo "$computer >> Office2013-32_Installs.txt"
}
else {
$recheck = Get-SoftwareList -Computername $computer | Select-String "Microsoft Office"
echo "$Computer :: $recheck >> Office2013_Check_ErrorLog.txt"
}
}
错误日志将列出未安装 Office 2013 或安装了错误版本的计算机。您可以进行更多验证,但这将帮助您入门。