小規模なネットワーク(デスクトップ約150、サーバー約20)があり、その多くはLinuxです。 MSは、約3年ごとにMS製品を監査したいと考え続けています。 80〜90台のデスクトップに移動して、Winアクティベーションキーをコピーしてから、MSソフトウェアライセンスキーを相互に関連付ける時間が本当にありません。
Active Directoryを使用してこの情報を取得する方法はありますか?たぶんPowerShellを使用していますか?
前もって感謝します。
OCSインベントリを展開しました。その無料で素晴らしい、そしてあなたが必要とするすべての情報を提供します。
これに対するマイクロソフト中心のソリューションは、 ボリュームキー を使用してライセンスを取得し、次に KMSサーバー を使用してライセンスアクティベーションステータスを報告することだと思います。
ボリュームライセンスがオプションではなく、すべてのクライアントがWindows 7以降である場合は、各マシンで SoftwareLicensingProduct
WMIクラス をクエリして、ライセンスの詳細を取得できます。 PowerShellとADを使用した例:
$Clients = Get-ADComputer -LDAPFilter "(&(operatingSystem=*Windows*))"
$LicenseQuery = "SELECT ApplicationID,Name,Description,ProductKeyID,PartialProductKey FROM SoftwareLicensingProduct WHERE LicenseStatus = 1"
foreach($Client in $Clients){
$ActiveLicenses = @(Get-WmiObject -Query $LicenseQuery -ComputerName $Client.Name)
if($ActiveLicense.Count -le 1){
Write-Warning "Unable to find active license for computer $($Client.Name)"
}
# Do what you want with the license information here
}
少しのエラー処理と出力ロジックが必要になります(必要に応じて詳細をCSVファイルにエクスポートできます)が、これで正しい方向に進むことができます。
クエリに含めた属性は監査には十分なはずですが、疑わしい場合はMicrosoftに問い合わせてください
これを処理する方法は、PowerShell起動スクリプトがNirSoft ProduKeyを使用してシステムからその情報を取得し、データをファイル共有にアップロードすることです。すでにPowerShell起動スクリプトを使用して多くの管理タスクを管理していたため、別の手順を追加するのは簡単でした。
ライセンスについて質問されるたびに、アップロードされたレポートをgrepして、カウントが一致することを確認し、重複するキーをチェックします。
最初は、PowerShellスクリプトでWMIとレジストリを手動でクロールしてこの情報を取得しましたが、NirSoftのツールが自分で作成したものよりもうまく処理できるEdgeのケースがいくつかありました。