Я использую 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, либо установлена неправильная версия. Вы можете сделать намного больше проверки, но это поможет вам начать.