web-dev-qa-db-ja.com

ネットワーク上のすべてのマシンのMicrosoftライセンス認証を取得するにはどうすればよいですか?

小規模なネットワーク(デスクトップ約150、サーバー約20)があり、その多くはLinuxです。 MSは、約3年ごとにMS製品を監査したいと考え続けています。 80〜90台のデスクトップに移動して、Winアクティベーションキーをコピーしてから、MSソフトウェアライセンスキーを相互に関連付ける時間が本当にありません。

Active Directoryを使用してこの情報を取得する方法はありますか?たぶんPowerShellを使用していますか?

前もって感謝します。

1
John Scott

OCSインベントリを展開しました。その無料で素晴らしい、そしてあなたが必要とするすべての情報を提供します。

OCSインベントリNG Projet

1
anuff

一般的な解決策:

これに対するマイクロソフト中心のソリューションは、 ボリュームキー を使用してライセンスを取得し、次に KMSサーバー を使用してライセンスアクティベーションステータスを報告することだと思います。

Windows7以降-ソリューション

ボリュームライセンスがオプションではなく、すべてのクライアントが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に問い合わせてください

1

これを処理する方法は、PowerShell起動スクリプトがNirSoft ProduKeyを使用してシステムからその情報を取得し、データをファイル共有にアップロードすることです。すでにPowerShell起動スクリプトを使用して多くの管理タスクを管理していたため、別の手順を追加するのは簡単でした。

ライセンスについて質問されるたびに、アップロードされたレポートをgrepして、カウントが一致することを確認し、重複するキーをチェックします。

最初は、PowerShellスクリプトでWMIとレジストリを手動でクロールしてこの情報を取得しましたが、NirSoftのツールが自分で作成したものよりもうまく処理できるEdgeのケースがいくつかありました。

0
myron-semack

nirSoftの使用 ProduKey

ProduKey.exe /remoteall 

他のコマンドラインオプションを探すにはreadme.txt

0
LogicDaemon