Windows10のHyper-Vで立てた仮想マシン(WindowsXP)からインターネットに繋げたくないけどホストから仮想マシンにリモートデスクトップ接続したい

# モチベーション

- 古のOS Windows XPでの検証をすることになったけど、わざわざ独立したPCにインストールとかめんどくさいしHyper-Vに入れるかぁ～
- オーディオが要るからリモートデスクトップでゲストOSに繋がなくちゃだなぁ
- ファイルの受け渡しが要るけどXPは拡張セッション使えないからリモートデスクトップに頼りたいなぁ
- 今更サポート切れのOSをインターネットに繋ぎたくないなぁ
- 外部のファイアウォールとかプロキシで制御するのもめんどくさいなぁ

# 最終的な図

- こんな感じだよ的な雰囲気
  - ほんとはルーターとかいるけどこの先の登場人物にいないので気にしない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/8c578aa5-b50f-00ba-2b14-2de6893622f4.png)

# 事前準備
さすがにできてる想定。後段の手順がわかってる人なら先にそっちを仕込んでからセットアップしてもよし

- Hyper-Vでの仮想マシンのセットアップ
  - OSのインストールができませんとか言われても困る
- ユーザアカウントにパスワードを設定しておく
- リモートデスクトップの有効化設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/5f9db56d-eac8-3c06-bb9b-8757cab0f336.png)
- 仮想マシンのセットアップ後、シャットダウン状態であること
  - 仮想マシンが起動してるとモロモロの設定がいじれない

# 手順

## 仮想スイッチの作成

- Hyper-V マネージャーから「仮想スイッチマネージャー」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/0d89a526-d8bb-25c9-1763-e5e4c9ab93b6.png)
- 「新しい仮想ネットワークスイッチ」で「内部」の「仮想スイッチの作成」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/d5fabd41-ce9d-1172-adec-6a91b2086564.png)
- なんかいい感じの名前をつけて「OK」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/2f16a2b7-5c1e-ea08-69d2-301a1f0037e2.png)
- コントロールパネルでネットワークアダプターの詳細設定を開くと、さっき作った仮想スイッチの名前を冠したアダプターができている。右クリして `プロパティ` > `インターネットプロトコルバージョン4(TCP/IPv4)`を選び、「プロパティ」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/3e9e6b4b-7b44-471a-0c77-5c91e140007a.png)
- ホストのアドレス帯と被らないやつを適当に割り振っておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/8318e43e-42b6-7206-0994-597e11326902.png)
- 反映されたか確認。コマンドプロンプトで `ipconfig /all` とかすると当該のアダプターの情報が出る
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/95390017-cc9c-50f7-4921-7d9cfac7b985.png)

### 余談
- `Default Switch`も内部ネットワークの仮想スイッチだが、こいつはいろいろ特殊な枠で、いい感じにNAPTしたりしてくるらしい。あとアドレス帯固定をするのがめんどくさい
  - https://happy-nap.hatenablog.com/entry/2022/09/28/154544
- というわけでちょっと凝ったことをしたい場合は `Default Switch` に頼らず、自分で仮想スイッチを追加して利用することをオススメしたい

## 仮想マシンに仮想スイッチを設定

- WindowsXPの場合、Hyper-Vが勝手に用意してくる「ネットワークアダプター」は認識しない
- 「レガシ ネットワーク アダプター」を選択して追加しておく
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/0cfe690e-c70d-d884-0ae0-fb3009869dbe.png)
- 「レガシ ネットワーク アダプター」の仮想スイッチに、さっき作った仮想スイッチを割り当てる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/f633026d-d094-35b8-7ba9-6b6660773f8b.png)

## 仮想マシン側のIP設定

- 仮想マシンを起動してログインする
- コントロールパネルからネットワークアダプターを選び、ホスト側のアドレス帯、かつ被らないIPアドレスを設定してやる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/7a9eccf7-ef8a-2850-0f9b-b242c1d03769.png)
- IPアドレスの反映確認をしておく。やり方はお任せ。以下は `右クリ` > `状態` で開いた場合。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/6827f9c1-9ae5-b8d1-d328-589916f733c8.png)

## ホストからのリモートデスクトップ接続
- ホストマシンでリモートデスクトップ接続を開き、仮想マシンのIPアドレスを入力して「接続」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/1caa0cc4-9880-ef7e-f4aa-842eaf4e335d.png)
- ログイン画面が出たら接続成功
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/5362eb52-1a62-5c79-783e-eea6bef8aa62.png)

## 仮想マシンからインターネットに繋がらないことの確認

- とりあえず懐かしのInternet Explorerとか開いてみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/e44b3750-48dc-db77-cbd9-92873e0e0d11.png)

- コマンドプロンプトでpingを打ってみる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/73b9ad55-3bb0-4ad5-9f3a-e34003faef2e.png)

## リモデ先の仮想マシンから音が出ることの確認

- コントロールパネルでサウンドのやつを開き、適当に鳴らしてみる。ﾄﾞｩﾝ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/399407/9e9909ee-1ddf-d63b-2e36-a547a12bfe8f.png)

# おわり

以上です。お疲れ様でした。