Office MAK 認証 は プロキシ環境下で動作するか？

# はじめに
Office のライセンス認証（MAK）を行う際に、プロキシを経由できるのか？
経験上では、可能だと思ってはいたものの、それを裏付ける公式な情報が見つけられませんでした。
※エビデンスになる公開情報を知っている人がいたら、教えてください。

加えて、プロキシのモード（ユーザー／システム）のどちらで利用できるのかを把握する必要があったため、検証してみることにしました。
- インターネットオプションのプロキシ（ユーザーセッションで有効）
- WinHTTP プロキシ（システムのプロセスに対して有効）

上記の設定の違いを Copilot に比較してもらいました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/bcc7c505-7ab8-6d09-fff9-7bcca819f2b1.png)
上記の表は、鵜呑みにするのではなく、私の経験上の認識と比較しても、合っています。

# システム環境

下図のようなイメージで、ゲスト OS に導入された Office を PROXY 経由でアクティベーションできるのかどうかを検証します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3be57e5c-3aff-847f-8a0c-0211dedddb42.png)

上記の構成は、以下の記事を参考にして構築することが可能です。
この記事で説明されている プロキシサーバー（BlackJumboDog）もインストールしてください。

https://qiita.com/carol0226/items/b5ca1ec882742e208e00

**公開情報：インターネットオプション の プロキシ**

https://learn.microsoft.com/ja-jp/previous-versions/troubleshoot/browsers/connectivity-navigation/use-proxy-servers-with-ie?wt.mc_id=mvp_407731

**公開情報：WinHTTP Proxy**

https://learn.microsoft.com/ja-jp/windows/win32/winhttp/netsh-exe-commands?wt.mc_id=mvp_407731

# 検証のための準備

## インストールメディア
Office の Retail 版、VL 版 なら何でも構いませんが、本記事では 以下の メディア と キー を使いました。

**Visual Studio Subscription**（注：サブスク契約が必要ですよ）
https://visualstudio.microsoft.com/ja/subscriptions/

**Office Professional Plus 2019** の **Japanese** をダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/622bc611-0ad2-6f58-b196-f7f91432b4f8.png)

以下の ISO ファイルがダウンロードされます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3ded20e7-f864-f9b6-692e-ae6869426b35.png)

**プロダクトキー** は、以下の **Retail Key** を使いました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3116abde-1920-367b-015c-d132cbf87d75.png)

**公開情報**

https://learn.microsoft.com/ja-jp/visualstudio/subscriptions/product-keys

## クライアント PC のデフォルトゲートウェイを外す
ゲスト OS は、確実に インターネットに接続できないようにしておきます。
以下の通り、ゲートウェイ を空欄にしておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/aa825c19-f7ac-4d94-6f5b-6fcce27f00de.png)

**ipconfig** で結果を確認し、デフォルトゲートウェイ が空欄になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/2fd779cb-a5be-a7d6-6d4b-ecef95a7e384.png)

ブラウザを起動し、外部にアクセスできないことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/528a95f0-1418-d8c6-709e-26efb60de2ca.png)

:::note warn
**注意**
もし、ブラウザが利用できていたら、プロキシが有効になっているかもしれません。
プロキシは、**無効化** しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/451d3b4f-c2f9-4373-4e7c-c968aa544039.png)

あらためて、通信できなくなったことを確認しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b3d30c2e-d0b7-26a5-2ce8-d44adc24a5a0.png)
:::

## Office のインストール
事前準備したメディアを使って、Office をインストールします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/59a4d2fc-bf01-a69b-8413-bef236f84461.png)

起動時のバナー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/a6146452-284a-b452-9a83-ba6ae4fd9ecb.png)

インストール開始
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3fa3933d-3bab-668d-3a51-17c6995e1abd.png)

インストール終了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7c5e6a56-8d9b-88b4-a113-ea772a20c727.png)

以上で、**事前準備** は完了しました。
次章から、ライセンス認証 の動作を検証していきます。

# 1. オフライン状態での Office ライセンス認証
## 1-1. GUI での動作を確認する
Office アプリを起動すると、以下の画面になります。
プロダクトキーを入力して **Office をライセンス認証** のボタンを押します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cf3a3827-86bb-437b-4d6a-096e47aa0110.png)

その後、オフライン環境だと、ライセンス認証が完了しておらず、アプリが強制終了されました。
以後、Office を起動しても、すぐ終了してしまう。全く使えません。

以下のコマンドで、ライセンスキーを削除してみます。
/dstatus をみると、エラー（黄色）になっています。
/unpkey で、キーを削除します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/01e0186f-d6d2-c7f6-e0e3-9be8b4f32505.png)

すると、Office は起動できるが、以下の画面が表示されます（初期の状態に戻る）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7b7bea71-99df-7529-1533-859bbf19c3c9.png)

上記の画面を SKIP すると、以下の画面に遷移し、評価モードで利用できるように見える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/cb60ffa9-537e-6e58-448e-db618991a349.png)

しかし、オフラインのままだと、結局 アプリが強制終了されて使えない。
Retail 版 のためか、評価モードであっても インターネットに接続していないと利用できない模様です。

**後始末**
次の検証をするために、評価版のライセンスキーが入っているため、それを削除しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b6c7d70f-f31a-3db1-f389-d6b0a3dd8114.png)

## 1-2. コマンドでの動作を確認する

**公開情報**
以下の記事で説明されているコマンドを使います。

https://learn.microsoft.com/ja-jp/office/volume-license-activation/tools-to-manage-volume-activation-of-office?wt.mc_id=mvp_407731#to-change-the-product-key-to-a-mak-key-on-a-remote-computer

以下の通り、コマンドを実行しましたが、エラー（黄色）が出てしまいます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/0f182c84-c8d2-23d2-0606-a39b304d074d.png)

その後、Office アプリを起動しても、結局 アプリが強制終了されて使えません（オフラインだから）

**後始末**
次の検証をするために、先ほどセットしたライセンスキーが入っているため、それを削除しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/00129620-4d0e-9e9c-4fcb-05d4622e75b9.png)

:::note info
**わかったこと**
以上の検証で、オフライン時は、アクティベーション が出来ないことが判りました。
加えて、オフラインだと 評価モードで Office を利用するも出来ないことが判りました。
:::

# 2. プロキシ設定（ユーザーモード）での Office ライセンス認証
## 2-1. プロキシ設定の実施
ゲスト OS で、設定パネルをひらき、以下の手順で プロキシ サーバーの設定をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/051341be-61cc-15c4-c550-13b3c93614c3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/f8c35f20-dfe1-02e6-d05f-1bbe9643e2db.png)

左側は、プロキシサーバー の画面です。右が ゲスト OS の画面です。
ゲスト OS のプロキシ設定に、プロキシサーバーの IP アドレスと、ポート を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/c2f7fad6-8e1c-7289-2882-b4fe0c62a8b4.png)

**Windows Firewall も無効化する必要あり**
ここでは、割愛していますが、プロキシサーバーのポートを開放（または Windows Firewall を無効化）しておかないと、通信がブロックされるので、注意してください。

:::note info
以下の記事の **Windows Firewall の設定** の章が参考になります。
https://qiita.com/carol0226/items/b5ca1ec882742e208e00
:::

**プロキシサーバーが機能していることを確認する**
以下の通り、サイトにアクセスして プロキシサーバー経由で 参照できることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/27737dff-fa56-5d48-d660-5a9645c49e50.png)

## 2-2. プロキシ経由のライセンス認証（ユーザーモード）の実施
コマンドを使って、ライセンス認証を実施します。

左側は、プロキシサーバーのログ（activation と表示）
右側は、ゲスト OS でのコマンド実行（ライセンス認証が成功している）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/4b09d648-bde0-5792-148d-e096cce5faaf.png)

その後、Office を起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7ff3afa3-cf36-9bce-5481-c97e4a305039.png)

無事に起動され、ライセンス認証 できていることが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/962c6227-1382-ef2a-52d7-c0e8acc95f51.png)

**後始末**
次の検証をするために、先ほどセットしたライセンスキーが入っているため、それを削除しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/eef0feee-2a0f-b9cd-2d2f-05519872cabf.png)

:::note info
**わかったこと**
以上の検証で プロキシ（インターネットオプション）を利用して、アクティベーション が可能なことが確認できました。
Office も 利用できます。
:::

# 3. プロキシ経由のライセンス認証（WinHTTP Proxy）の実施
## 3-1. 事前準備
ユーザーのプロキシを OFF にしておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/451d3b4f-c2f9-4373-4e7c-c968aa544039.png)

通信できなくなったことを確認しておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/b3d30c2e-d0b7-26a5-2ce8-d44adc24a5a0.png)

## 3-2. WinHTTP Proxy を設定する

**公開情報：WinHTTP Proxy**
Windows Update をするための記事ですが、同様の手順で WinHTTP Proxy が設定できます。
https://learn.microsoft.com/ja-jp/troubleshoot/windows-server/installing-updates-features-roles/windows-update-client-determines-proxy-server-connect?wt.mc_id=mvp_407731#the-netshexe-tool

コマンドを実行して、WinHTTP Proxy を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/3282a35b-c844-53d7-5a03-307321a7a5d1.png)

:::note info
**その他の WinHTTP Proxy 設定方法**
netsh winhttp set proxy [IP]:[Port] 以外の方法として、以下のコマンドで、ユーザーモードのプロキシ設定を WinHTTP Proxy に複製することも可能です。

**netsh winhttp import proxy source=ie**
ユーザーモードのプロキシが設定されている状態で、上記のコマンドを実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/5eecfc33-43ad-ab2d-3e30-18008b4a07df.png)
:::

プロキシが有効になった状態で、Office ライセンス認証 を実行します。
左側は、プロキシサーバーのログ（activation と表示）
右側は、ゲスト OS での コマンドの実行（ライセンス認証が成功している）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/ea1267eb-c530-ef91-528a-7c680a419200.png)

その後、Office を起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/7ff3afa3-cf36-9bce-5481-c97e4a305039.png)

無事に起動され、ライセンス認証 できていることが確認できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/962c6227-1382-ef2a-52d7-c0e8acc95f51.png)

**後始末**
次の検証をするために、先ほどセットしたライセンスキーが入っているため、それを削除しておきます。
WinHTTP Proxy も無効化しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/68491453-c71e-c8e9-e7d9-0c518d1cd475.png)

:::note info
**わかったこと**
以上の検証で プロキシ（WinHTTP Proxy）を利用して、アクティベーション が可能なことが確認できました。
Office も 利用できます。
:::

# 4. プロキシが無い状態で 最終確認
プロキシが無効の場合は、やはり エラー発生 が発生します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1619637/03289d30-cfa9-a7da-529f-c0be8857280e.png)

# 5. 結論
以上の検証により、Office のアクティベーションは、プロキシを経由できることがわかりました。
さらに、プロキシのモードは、以下のどちらでも機能することもわかりました。
- インターネットオプションのプロキシ（ユーザーセッションで有効）
- WinHTTP プロキシ（システムのプロセスに対して有効）