February 20, 2020 3:29 am

MAK を使用して複数のデバイスで Windows 7 ESU のライセンス認証を行う方法

※ 本ブログは、米国時間 2/11 に公開された “Activate Windows 7 ESUs on multiple devices with a MAK の抄訳です。

このブログ記事では、Windows 7 Pro または Enterprise から Windows 10 に移行中で、Windows 7 延長セキュリティ更新プログラム (ESU) をご購入のお客様を対象としています。マルチ ライセンス認証キー (MAK) を使用して Windows 7 ESU キーを複数のデバイスでインストールし、ライセンス認証を行う方法についてご説明しています。ここで取り上げるシナリオは、対象のデバイスがオンプレミスの Active Directory ドメインに含まれていることを前提としています。

メモ: 下記の Activate-ProductOnline.ps1 スクリプトを実行するには、Windows 7 デバイスからインターネット経由でオンライン ライセンス認証にアクセスできる必要があります。隔離された Windows 7 デバイスに ESU をインストールする必要がある場合、またはインターネット アクセスに制限がある場合は、ActivationWs プロジェクトをご利用ください。これは、Microsoft BatchActivation Service との通信にプロキシを使用することで、Windows 7 デバイスのライセンス認証をサポートするものです。ActivationWS プロジェクトには、以下の手順に代わる PowerShell スクリプト (Activate-Product.ps1) が含まれています。

それでは、Windows 7 ドメインに参加しているデバイスで Activate-ProductOnline.ps1 を実行するためのグループ ポリシー オブジェクトを作成するプロセスから説明していきます。

Activate-ProductOnline.ps1 スクリプトをダウンロードする

Activate-ProductOnline.ps1 スクリプトをダウンロードし、ローカルのフォルダーに保存します。このスクリプトは ESU プロダクト キーのインストールとライセンス認証を実行します。

メモ: Activate-ProductOnline.ps1 スクリプトの実行には、ProductKey パラメーターとして 25 文字のコードが必要になります (形式: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX)。

スクリプトの基本的なロジックは次のとおりです。

  1. 必須の ProductKey パラメーターと任意の LogFile パラメーターを受け取り、チェックします。
  2. プロダクト キーが既にインストールされライセンス認証されている場合は終了します。
  3. プロダクト キーをインストールします。
  4. プロダクト キーのライセンス認証を行います。
  5. 既定の場所にログ ファイルを生成します ($env:TEMP\Activate-ProductOnline.log)。

重要: 管理者は、ログ ファイルまたはグループ ポリシー オブジェクト (GPO) を表示してキーを読み取ることができます。そのため、キーの公開範囲を制限して、機密性を確保するように注意してください。ESU キーの暗号化や難読化をサポートするようにスクリプトを変更することを検討してもよいでしょう。ただし、今回の記事では対象範囲外となります。

ESU の前提条件が整っていることを確認する

Windows 7 ESU キーのインストールとライセンス認証を行う前に、対象の Windows デバイスの延長セキュリティ更新プログラムを入手する方法で述べられている前提条件のプログラムがすべてインストールされていることを先に確認してください。前提条件が満たされていないと、Windows 7 の ESU キーは正しくインストールされません。

メモ: ESU キーをインストールする際にソフトウェア ライセンス サービスからエラー 0xC004F050 が表示される場合、前提条件のプログラムのいずれかがインストールされていないか、もしくは異なるオペレーティング システム用の更新プログラムが適用されていることが考えられます。この解決策としては、Windows 7 Pro、Enterprise、または Ultimate に ESU キーを適用しながら、前提条件のプログラムを 1 つずつインストールし直すのが最も効率的です。

WMI フィルターを用いたグループ ポリシー オブジェクト (GPO) を作成する

メモ: 下記の例では、GPO は Windows7_ESU という名前で、ドメインのルートにリンクされています。すべてのデバイスがこの GPO を参照し、WMI フィルターで処理されます。すべてのデバイスが対象となりますが、GPO が適用されるのは Windows 7 デバイスのみです。もしくは、Active Directory にすべての Windows 7 デバイスを対象とする動的セキュリティ グループを作成し、そのグループにのみアクセスを許可するよう GPO を設定すると、GPO に指定されているスクリプトを実行するデバイスの数を制限できます。

新しい GPO を作成して、ESU のスコープ内で Windows 7 デバイスを保持するディレクトリの場所にリンクするには、次のステップを実行します。

  1. グループ ポリシー管理ツールがインストールされているドメイン コントローラーまたはワークステーションで、[Start] をクリックして「グループ ポリシー」と入力し、[グループ ポリシーの管理] を選択します。
  2. フォレストおよびドメイン ノードを展開し、Windows 7 デバイスが含まれる適切な OU またはコンテナーを表示します。
  3. OU またはコンテナーを右クリックします。
  4. [Create a GPO in the domain] を選択し、「Windows7_ESU」と名前を付けて、[OK] をクリックします。

  1. 新しい GPO を右クリックして [Edit] を選択し、グループ ポリシー管理エディターを開きます。
  2. [Computer Configuration] の下の [Policies] を展開し、次に [Windows Settings] を展開します。[Scripts (Startup/Shutdown)] を選択します。
  3. 右側のペインの [Startup] をダブルクリックして、下図に示すように [PowerShell Scripts] タブを開きます。

  1. [Add] をクリックして、[Add a Script] ダイアログを開き、[Browse] を選択します。そうすると、Windows エクスプローラー ウィンドウが開き、作成したグループ ポリシー オブジェクトの Startup フォルダーが表示されます。下図のように、Activate-ProductOnline.ps1 スクリプトを Startup フォルダーにドラッグします。

  1. コピーした Activate-ProductOnline.ps1 を選択し、[Open] をクリックします。
  2. Activate-ProductOnline.ps1 が [Script Name] フィールドに指定されていることを確認し、下図に示すように、パラメーター「-ProductKey」と ESU MAK キーを入力します。

  1. [OK] をクリックして [Add A Script] ダイアログを閉じ、[OK] をクリックして [Startup Properties] を閉じます。グループ ポリシー管理エディターを終了します。
  2. グループ ポリシー管理コンソールで、[WMI Filters] ノードを右クリックして [New] を選択し、下図のように [New WMI Filter] ダイアログを開きます。

  1. 新しい WMI フィルターにわかりやすい名前を付け、[Add] をクリックして [WMI Query] ダイアログを開きます。下図に示すように、クエリに「Select Version from Win32_OperatingSystem WHERE Version like “6.1%” AND ProductType=”1″」と指定します。

  1. [OK] をクリックして [WMI Query] ダイアログを閉じ、[Save] をクリックします。
  2. グループ ポリシー管理コンソールで、新しい GPO を選択します。[WMI Filtering] セクションで、下図のように、先ほど作成した WMI フィルターを指定します。

ESU PKID がインストールされライセンス認証されていることを確認する

新しいポリシーがサイト内のすべてのドメイン コントローラーと同期されるまで最大 45 分かかる場合があります (リモート ドメイン コントローラーの場合、同期スケジュールによってはさらに長くかかります)。完了したら、Windows 7 デバイスを再起動します。これにより、グループ ポリシーが強制的に更新され、Startup スクリプトが実行されるようになります。

このスクリプトは、補足的な検証が行えるようにログ ファイルを出力します。既定でログ ファイルの名前は Activate-ProductOnline.txt となっており、システムの TEMP ディレクトリ C:\Windows\Temp に保存されます。

プロセスが正常に終了したことを確認するには、以下を実行します。

  1. GPO のスコープ内の Windows 7 コンピューターで、管理者特権のコマンド プロンプトからコマンド slmgr /dlv を実行します。
  2. 下図のように Windows 7 Client-ESU アドオンのソフトウェア ライセンス情報と License Status が「Licensed」と表示されていることを確認します。

トラブルシューティング

一般的な問題のトラブルシューティングと解決の手助けになるよう、いくつかの手順を以下に紹介します。

修正プログラムを個別に適用する

問題のあるシステムにログオンしている間に、適用できる各修正プログラムをインストールしてみましょう。修正プログラムが適用されませんとメッセージが表示され、インストーラーが終了する場合は、その修正プログラムがオペレーティング システムにとって正しくないか、もしくは既にインストールされています。修正プログラムがインストールされた場合は、以前にインストールされたことはなかったということです。

Windows のバージョンを確認する

  1. コマンド プロンプトを開きます。
  2. winver」と入力し、Enter キーを押します。
  3. [About Windows] ダイアログのスクリーンショットを撮ります。

修正プログラムがインストールされていることを確認する

  1. コントロール パネルを開きます。
  2. [Programs] をクリックします。
  3. [Programs and Features] の下の [View installed updates] をクリックします。
  4. 必要な修正プログラムを検索します。
オペレーティング システム 修正プログラム
Windows 7 SP1 4490628
Windows 7 SP1 4474419
Windows 7 SP1 4516655
Windows 7 SP1 4519976

メモ: 修正プログラムは時間が経過すると置き換えられます。たとえば、この記事の公開時点では、KB4516655 は KB4536952 に、KB4519976 は KB4534310 で置き換えられています。インストール時に最新の修正プログラムを調べるには、Microsoft Update カタログで個々の修正プログラムを検索し、[パッケージの詳細] から確認してください。

  1. スクリーンショットを撮ります。
  2. オペレーティング システムと前提条件を確認しても ESU キーのインストールができない場合は、Windows サポートでインシデントをオープンし、スクリーンショットを提供してください。

終わりに

このブログ記事では、Windows 7 の延長セキュリティ更新プログラムを展開し、ライセンス認証する方法について説明しました。System Center Configuration Manager などの管理サーバーのご使用も可能です。Configuration Manager を使用したスクリプトの展開に関する情報については、「Configuration Manager コンソールから PowerShell スクリプトを作成して実行する」を参照してください。

ボリューム ライセンス認証管理ツール (VAMT) を使用すると、管理者は Windows クライアント、Windows サーバー、および Office 2010 のライセンス認証に関連するさまざまな操作を自動化して一元管理できます。VAMT 2.0 をダウンロードするには、Microsoft ダウンロード センターにアクセスしてください。

ライセンス認証エラーが表示された場合は、Windows のライセンス認証エラーに関するヘルプを参照して、その他のトラブルシューティングのヒントをお探しください。

Windows 7 Embedded、Windows Server 2008、Windows Server 2008 R2 SP1 の ESU などの延長セキュリティ更新プログラムについてのさらに詳しい情報は、以下のリソースをご参照ください。