今回はWORKGROUP環境で、別PCのHyper-Vにリモートで接続する際の手順について説明します。
検索すると、ホストがWindowsServerでクライアントがWindows10などの解説が多かったですが、今回は両方ともWindows10で解説します。
正直適当に設定しているし、メモを見ながらブログを書いたので不足や不要な設定などあるかもしれませんが、Hyper-Vいじるような人であれば自己解決できると思うので適当に書きます。
環境
ホスト :Windows10 Pro(ver.21H1)※仮想マシンを実際に稼働させる側
クライアント:Windows10 Pro(ver.21H1)
どちらもWORKGROUP環境です。
通常、Windows10 ProでないとHyper-V関連のアプリをインストールできないので、Proエディション必須です。インストールが完了していない場合は、以前にHyper-Vのインストール手順をまとめた記事を書いていたので、それを参考にインストールしてください。
クライアント側は、Hyper-v 管理ツールだけでも問題ありません。
接続手順
ホスト側設定
WinRMの有効化
WinRMを有効化します。このサービスはWindowsをリモートで操作する際に必要なサービスのようです。リモートデスクトップのようなGUIではなくコマンドベースでのリモート操作で、Linuxでいうsshのようなものらしいです。
[Windowsボタン]→[Windows管理ツール]→[サービス]より以下のサービスについて、実行状態にします。再起動時も自動で実行する場合は、スタートアップの種類を”自動”に設定しておきます。
サービス名:WinRM
表示名 :Windows Remote Management (WS-Management)
スタートアップの種類:自動
サービスの状態:実行中(実行中でない場合は"開始"をクリックする)
PowerShellより、下記のコマンドを実行すればWinRMサービスが起動し、スタートアップも自動になる(上記の手動操作と同じ結果)ようなのですが、私の環境だとなぜか変化なしでした。なので引き続き私の環境のケースで手順は解説します。マイクロソフトのナレッジも併せて紹介しておきます。
winrm quickconfig
CredSSP認証
コンピュータのCredSSP認証を有効にします。CredSSP認証とはユーザーの資格情報をリモートコンピュータに渡して認証するものらしく、おそらく、クライアント側で入力したIDとパスワードをホスト側で認証するようなものだと思います。
PowerShellでそれを有効にするために、下記コマンドを実行します。
Enable-WSManCredSSP -Role Server
Hyper-v Administratorsグループへの所属
認証用のユーザの設定をします。
今回は、認証専用の「hv-adm」ユーザを作成しますが、既存のユーザを使いまわす場合は、Hyper-v Administratorsグループへ所属させるだけで問題ありません。
ユーザの作成
- [コンピュータの管理]→[ローカルユーザーとグループ]→[ユーザー]右クリック→[新しいユーザ]
- [ユーザ名]を入力(今回はhv-adm)
- [パスワード]と[パスワードの確認入力]を入力
- [ユーザーは次回ログオン時にパスワードの変更が必要]のチェックを外す
- [パスワードを無期限にする]にチェックを入れる
Hyper-v Administratorsグループへの所属
- 作成したユーザを右クリック→[プロパティ]
- [所属するグループ]タグを選択
- [追加]→[選択するオブジェクト名を入力してください]→(Hyper-V Administrators)入力→[名前の確認]→[OK]
- Hyper-v Administratorsが追加されていることを確認
- 念のため(Administrators)も同じ要領で追加
ファイアウォールの穴あけ
デフォルトのままだと通信が通らないと思いますので、ファイアウォールの穴あけが必要になります。
- [コントロールパネル]→[Windows ファイアウォール]→[Windows Defenderファイアウォールを介したアプリまたは機能を許可]
- [設定の変更]をクリック
- [Windowsリモート管理]、[Windowsリモート管理(互換性)]にチェックを入れる
クライアント側設定
WinRMの有効化
ホスト側で行った設定と同様の設定をクライアント側でも行います。
[Windowsボタン]→[Windows管理ツール]→[サービス]より以下のサービスについて、実行状態にします。再起動時も自動で実行する場合は、スタートアップの種類を”自動”に設定しておきます。
サービス名:WinRM
表示名 :Windows Remote Management (WS-Management)
スタートアップの種類:自動
サービスの状態:実行中(実行中でない場合は"開始"をクリックする)
PowerShellより、下記のコマンドを実行すればWinRMサービスが起動し、スタートアップも自動になる(上記の手動操作と同じ結果)ようなのですが、私の環境だとなぜか変化なしでした。なので引き続き私の環境のケースで手順は解説します。
winrm quickconfig
CredSSP認証
ホスト側でも有効にしたCredSSP認証をクライアント側でも有効化します。
正直よくわかっていませんが、この設定を有効化することでローカルで入力した資格情報がリモートサーバで認証できるようになるんだと思います。DelegateComputerオプションで資格情報を委任するサーバを指定できます。今回は『*』なのですべてのサーバに対して有効化しています。
PowerShellで下記コマンドで有効化します。
Enable-WSManCredSSP -Role Client -DelegateComputer *
グループポリシーの設定
- [ファイル名を指定して実行]→[gpedit.msc]を入力→[OK]
- [コンピュータの構成]→[管理用テンプレート]→[システム]→[資格情報の委任]→[NTLM のみのサーバー認証で保存された資格情報の委任を許可する]をダブルクリックで開く
- 有効のラジオボタンを選択
- [オプション]→[サーバーを一覧に追加]の[表示]→値に[*]を入力する
サーバーに接続
- [Hyper-Vマネージャー]→[サーバに接続]
- [別のコンピュータに接続]→(対象のコンピュータ名)を入力 ※1
- [別のユーザーとして接続する]にチェックを入れる→[ユーザーの設定]をクリック
- 『Hyper-v Administratorsグループへの所属』で作成したユーザとパスワードを入力
今回はwrokgroup環境なので、ユーザ名は『workgroup\hv-adm』としています。 - [別のユーザーとして接続する]の横にユーザ目が表示されていることを確認→[OK]
- [Hyper-Vマネージャー]の下のホストマシン名を選択し、仮想マシン一覧が表示されること
※1 対象のコンピュータ名が不明な場合は、『ホスト側PC』でコマンドプロンプトから『hostname』コマンドで確認できます。
コメント