WVD Spring 2020 #15 Domain Controller 停止時の挙動

この記事のWVDは”Windows Virtual Desktop Spring 2020 Release”が対象です。

Windows Virtual Desktop Spring 2020 の環境でActive Directory のDomain Controller が停止した場合の挙動を紹介します。 

当方の環境ではAzure 上のVirtual Machine に Windows Server 2019 を展開し、そこで Active Directory を構成しました。 今回、意図的にこのサーバを停止し、その場合、エンドユーザからはどう見えるのか、実際の画面を交えて紹介します。

最初のテストではDomain Controller を停止し、その状態で Windows Virtual Desktop に接続を試みます。

Domain Controller が停止していることを確認します。

この状態でHost pool を確認します。 Host pool 視点では異常はありません。

リモートデスクトップクライアントを起動しWorkspace “bigriver-ws” の中のデスクトップリソースにアクセスします。

接続に失敗しました。  認証を担うDomain Controller が停止しているのですから当たり前といえば当たり前です。

エラーメッセージは”このリソースへのアクセス中にエラーが発生しました。接続を再試行するか、システム管理者に問い合わせてください。”です。 エンドユーザにはこのメッセージが表示されるということです。

“詳細の表示” からエラーコード等を確認します。 こちらにも Domain Controller の停止を示すようなメッセージはありません。

“エラーコード: 0x3000047
拡張エラーコード: 0x0
タイムスタンプ (UTC): 2020-05-27T10:25:11.142Z
アクティビティ ID: b947a0fb-8a6a-48e0-a827-82c9e3ca0000″

この時のSession hosts の状態は以下。 Status が”Upgrading”となっています。今回のDomain Controller との関連性は未確認。

Domain Controller を起動し、Windows 10 にサインインできることを確認します。

サーバを起動し、

リモートデスクトップクライアントからWorkspace “bigriver-ws”のデスクトップリソースに接続します。

今度は資格情報の入力画面がポッポアップしました。想定した動作です。

PINは使えないので、パスワード入力に変更しサインインを進めます。

Windows Virtual Desktop 上のWindows 10 にサインイン出来ました。 青い画面が仮想の Windows 10 です。

次はこの状態で Domain Controller を停止し、セッションを切断し再接続できるか確認します。 サインアウトではなく切断状態であることがポイントです。

サーバを停止します。 また、IPアドレスは 10.0.0.4 が割り当てられていたことを確認します。

この状態でWVD 上の Windows 10 から Domain Controller にPing を実行します。 もちろん、応答はありません。

“Disconnect”でセッションを切断します。

Azure Portal からSession hosts の管理画面を開きます。 “Disconnected” と切断状態であることが確認できます。

リモートデスクトップクライアントから再度接続を試みます。

接続に失敗しました。

“詳細の表示” からエラーコード等を確認します。 こちらにも Domain Controller の停止を示すようなメッセージはありません。”エラーコード: 0x3000047″ で接続に失敗しました。 

まとめです。  Active Directory のDomain Controller 停止時はサインインは失敗します。 この時ユーザ側に出るメッセージは”このリソースへのアクセス中にエラーが発生しました。接続を再試行するか、システム管理者に問い合わせてください。”だけです。 オンプレミスの Windows の場合 “ドメインコントローラが見つかりません”などと表示されるのでその情報を伝え聞いたシステム管理者も切り分けは簡単だったですが、Windows Virtual Desktop ではそうではないということがわかりました。

また、切断後の再接続時にも Domain Controller との認証が必要ということもわかりました。 これはセキュリティの観点でいえば歓迎する動作仕様です。 Active Directory 環境では既定でキャッシュログオンが有効なためDomain Controller が動作していなくともログオン出来たりしました。

Domain Controller 停止時の挙動は大体確認出来ました。 実際の本番環境の適用にあたってはエラーコード、今回は0x3000047、のノウハウをためておくことが重要になりそうです。 このエラーコードの時にはDomain Controller の異常から切り分けを実施する、このコードの場合はWVD の管理プレーンを確認する、またこのコードの場合はクライアント側を確認するなどトラブルシューティングにかかる時間を短縮できます。。