私たちのドメインには、KMS アクティベーション サーバーと、Office 2010 または 2013 がインストールされた多数の仮想デスクトップ、通常のデスクトップ、ラップトップがあります。それらのほとんどは 32 ビットの Office であるはずですが、一部は 64 ビットであることはわかっています。どのコンピューターにどのバージョンの Office がインストールされているかについての読み取り可能なレポートを取得する方法 (System Center、PowerShell、Active Directory などを使用) はありますか?
一般的なアプリケーション モニターを使用しましたが、マシンに 32 ビットの Office がインストールされているにもかかわらず、64 ビットの Office コンポーネントのブリッジのように見えるものも含め、Office 関連コンポーネントの膨大なリストが表示されました。
ご協力いただければ幸いです。
答え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 がインストールされていないコンピューター、または間違ったバージョンがインストールされているコンピューターが一覧表示されます。さらに多くの検証を行うことができますが、これで作業を開始できます。