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