web-dev-qa-db-ja.com

コマンドプロンプトまたはPowerShellからWindowsがアクティブ化されているかどうかを確認するにはどうすればよいですか?

Windowsがアクティブ化されているかどうかを確認したいが、メニューシステムに飛び込むことができない、またはデスクトップエクスペリエンスのないWindowsのバージョン(Server Coreなど)を使用している場合、アクティブ化ステータスを確認するにはどうすればよいですか?コマンドライン?

5
Earl Sven

Windows 10またはWindows Server 2016/2019で、コマンドプロンプト(またはpowershell)を使用してアクティベーションステータスを表示するには、任意のコマンドラインツールを開き、次のコマンドを入力します

slmgr /xpr

オペレーティングシステムのアクティベーションステータスを示すダイアログが表示されます。オペレーティングシステムがまだアクティブ化されていない場合、ダイアログはそれが「通知モード」であることを示します

Command Prompt with open dialog indicating Windows is in Notification Mode.

Windowsが正常にアクティブ化された場合、ダイアログは以下のように「Permanently Activated」であるか、または時間制限付きボリュームライセンスアクティベーションを使用している場合、アクティベーションの有効期限が切れる時刻が表示されます。

Command Prompt with open dialog indicating Windows is permantently activated.

古いバージョンのWindows(Windows 7など)では、メッセージダイアログは似ていますが、テキストが少し異なる場合があります。

この方法は、ウィザードを完了する前に、Shift + F10を使用してコマンドプロンプトを起動し、Out-Of-Box Experience(OOBE)ウィザード中にアクティブ化ステータスを確認する場合にも役立ちます。

3
Earl Sven

純粋なPowerShellソリューションは次のようになります。

Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" | 
where { $_.PartialProductKey } | select Description, LicenseStatus

これにより、次のような出力が得られます。

Description                                 LicenseStatus
-----------                                 -------------
Windows(R) Operating System, OEM_DM channel             1

licenseStatusが1の場合、システムが永続的にアクティブ化されていることを意味します。

これの良い点は、-ComputerNameパラメータを指定することにより、RemoteMachinesを簡単に確認できることです。

Get-CimInstance SoftwareLicensingProduct -Filter "Name like 'Windows%'" -ComputerName RemoteComp | 
where { $_.PartialProductKey } | select Description, LicenseStatus

slmgr /xprの方が高速でわかりやすいとは言えますが。

2
SimonS
  • ポップアップを回避し、
  • windowsバージョン/アクティベーションステータスを変数に保存する
  • cscriptを使用してslmgr.vbsを実行し、バッチファイルにラップします
  • for /fループで出力を解析する

:: Q:\Test\2019\04\07\SU_1422368.cmd
@Echo off&SetLocal EnableExtensions EnableDelayedExpansion
Set "WinVerAct="

For /f "tokens=*" %%W in ('
    cscript /Nologo "C:\Windows\System32\slmgr.vbs" /xpr
') Do Set "WinVerAct=!WinVerAct! %%W"
if Not defined WinVerAct ( 
    Echo:No response from slmgr.vbs
    Exit /B 1
)
Echo Windows Version Activation Status:
Echo:"%WinVerAct:~1%"

出力例:

> Q:\Test\2019\04\07\SU_1422368.cmd
Windows Version Activation Status:
"Windows(R), Professional edition: Der Computer ist dauerhaft aktiviert."

Slmgr.vbsをラップする1行のPowerShellスクリプト:

$WinVerAct = (cscript /Nologo "C:\Windows\System32\slmgr.vbs" /xpr) -join ''
2
LotPings