Windows VistaのOSライセンス情報を取得する
「OSライセンス情報の取得方法」はXPとVistaで異なる
WindowsXPでOSライセンス情報を取得するには、WMI経由でWin32_WindowsProductActivationクラスを利用します。
WindowsVistaには、Win32_WindowsProductActivationクラスが含まれていないようですが、
代わりに、SoftwareLicensingProductクラスを利用することで、ライセンス情報の取得が可能です。
サンプル
$products = Get-WmiObject SoftwareLicensingProduct foreach($product in $products) { Write-Host "製品名: " $product.Name $status = $product.LicenseStatus switch ($status) { 0 {"Unlicensed"; break} 1 {"Licensed"; break} 2 {"OOBGrace"; break} 3 {"OOTGrace"; break} 4 {"NonGenuineGrace"; break} } Write-Host "プロダクトID: " $product.ProductKeyID Write-Host "評価期間の残り日数: " $product.GracePeriodRemaining/1440 Write-Host }
Win32_WindowsProductActivationクラスとSoftwareLicensingProductクラスとでは、
対応するプロパティ名が異なりますので、サンプルを移行する際には注意が必要です。
Win32_WindowsProductActivation | SoftwareLicensingProduct | |
---|---|---|
ライセンス状態 | ActivationRequired | LicenseStatus |
プロダクトID | ProductID | ProductKeyID |
評価期間の残り時間 | RemainingEvaluationPeriod | GracePeriodRemaining |
※RemainingEvaluationPeriodの単位は「日」、GracePeriodRemainingの単位は「分」です。
補足
TechNetの「Hey, Scripting Guy!」にSoftwareLicensingProductの解説があります。参考になりますね。
http://www.microsoft.com/technet/scriptcenter/resources/qanda/apr07/hey0402.mspx