Windows Virtual Desktop トラブルシューティング

※2019年6月5日に一部更新しています。

はじめに

Windows Virtual Desktop (WVD)のパブリックプレビューのご体験いかがでしょうか?
多くの方は「とりあえず触ってみよう」と触れて多くのエラーに心折れた方もいるのではないでしょうか。

この記事では各種エラーとその対応方法を弊社独自の見解で解説していきます。

 

Windows Virtual Desktop 作成の流れ

 ざっくりとした流れはこちらです

  1. Azure 環境の用意
  2. パブリックプレビューの申し込みを実施
  3. WVD テナント作成ユーザに TenantCreator 権限を付与
  4. RDSアカウントの追加およびWVD テナントの作成(PowerShellによる作業)
  5. Active Directory サーバを構築し、仮想デスクトップをデプロイするドメインを用意
  6. Azure AD Connect サーバを構築し、仮想デスクトップにサインインするユーザを用意
  7. Azure ポータルより、WVD をデプロイ

Azure ポータルで作成すると内部的に概ねこのような処理が行われているようです。

  1. 可用性セットの作成
  2. VM 作成
  3. 拡張機能 [joindomain] インストール後、ドメイン参加
  4. 拡張機能 [dscextension] インストール
  5. Hostpool 作成
  6. AppGroup 作成
  7. AppGroupUser 追加

 トラブル解説

RDS アカウントの追加ができない

Add-RdsAccount : 1 つ以上のエラーが発生しました。
発生場所 行:1 文字:1
+ Add-RdsAccount -DeploymentUrl “https://rdbroker.wvd.microsoft.com”
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Add-RdsAccount], AggregateException
+ FullyQualifiedErrorId : System.AggregateException,Microsoft.RDInfra.RDPowershell.Context.AddRdsAccount

RDS アカウントの追加は PowerShell で Add-RdsAccount コマンドを実行することになりますが、こちらを実行するには対象となる Azure AD に対して AD のユーザー同期を予め行っておく必要があります。Azure AD は何らかのADと同期されている状態であれば、問題ありません。

 

VM 作成に失敗する

この時点で失敗した方はリソースグループ上に可用性セットのリソースのみが作成されており、以下のエラーで失敗しているはずです。

原因:仮想ネットワークの設定に問題あり

WVD で VM を作成するには予め仮想ネットワークを作成し、AD が参照する DNS サーバを指定している必要があります。WVD 作成時に仮想ネットワークを作るとこの時点で失敗します。

 

ドメイン参加に失敗する

Azure ポータル上に VM リソースが確認できたけど、以下のエラーが起こった場合の原因を見てみましょう。

原因:AD に関する情報が間違っている

AD に関する情報として、入力したアカウントにドメイン参加権限がなかったり、入力したドメインや OU の指定に誤りがある可能性が高いです。

 

VM 拡張のインストールに失敗する

AD 上にコンピュータオブジェクトも作られ、WVD デプロイ成功まで目前ですが、以下のようなエラーが起こることがあります。

 

このエラーが発生する直接的な原因は dscextension インストール時のスクリプトの内容を確認しない限り明確に断言することは出来ませんが、対処方法を弊社では確立したためここまで来た方はすでにデプロイ成功したも同然です。

dscextension が行っていることはだいたい想像が付きます。若干順番が前後しているかもしれませんが、概ね以下の処理が行われています。(※弊社の想像です)

  1. まず1台に Windows Virtual Desktop エージェントとブートローダーをダウンロード?もしくはインストールできるかチェック
  2. 1が問題なければホストプールを作成
  3. セッション ホストがホスト プールに参加することを承認する登録トークンを作成
  4. Windows Virtual Desktop エージェントをインストール
  5. Windows Virtual Desktop エージェント ブートローダーをインストール
  6. 残りすべてを同時並行で1および4と5を繰り返す

このような処理フローのため、2台のセッションホストでも10台のセッションホストでもほとんど処理時間に違いは出てきません。

 

原因

エラーに関する公式ドキュメントの説明はこちらにあります。

Azure Resource Manager template and PowerShell Desired State Configuration (DSC) errors

いくつかの原因が書かれています。

  • 権限や名前解決の問題
  • 一時的なエラー(運が悪かった?)
  • パスワードに禁止文字が使われている

どれも参考になることはありませんでした。。。

 

原因(よくあるエラー):セッションホストの管理者権限がない!?

エラーとしては権限不足によりエージェントやブートローダーのインストールに失敗することが原因となります。

まだ弊社でも検証を行っている状況ですが、同じ設定でも成功したり失敗したりするため、単に権限だけの問題とも考えにくい状況です。

 

弊社の見解では、この時点でエラーが起こる場合はユーザー側に問題がある可能性は低いと考えています。その証拠に、エラー画面でパラメータを変えることなく「再デプロイ」ボタンを押してデプロイに成功することもありました。
また、複数のセッションホストを作る際に、1 台だけ失敗することもありました。

 

原因(その他エラー)

  • Windows Virtual Desktop tenant name に不備がある!?
  • Azure Portal が悪い!?
  • システムが不安定

Azure Portal からデプロイしていると名前が原因でエラーになることがあります。その場合は、後述の手動インストールと同じ手順で問題は解決します。

弊社が検証している中で、複数台のセッションホストをデプロイしているときにだいたいは成功している中、一部がエラーになることもありました。
当然ながら1つのデプロイにおいてセッションホスト間に違いはないはずです。

もし 1 台目でも成功していれば、残りのところで失敗して終わったとしても、ホストプールが作成されているため WVD にアクセスすることは可能です。1台でも失敗したら手動で PowerShell でホストプールに登録すれば修復可能です。

 

解決方法1(おすすめ):手動インストール

このエラーが発生している人は Azure 上にドメイン参加されたセッションホストの VM だけが残っている状態かと思います。
まず、PowerShell でホストプールを作成します。次に、ADからそれらのVMに直接ログインしてホストプールに VM を登録していきます。最後に AppGroup にユーザーを追加してください。

Azrue Portal からのデプロイは失敗しましたが、これらの手順によってリカバリ完了であとは問題なくご利用いただけます。

 

解決方法2:ARM テンプレートからデプロイ

結果論として、Azure Portal の処理に何か原因がありそうな挙動です。

ARM テンプレートからデプロイすることでこの障害を回避することが出来ます。弊社メンバーの中には ARM テンプレートからのデプロイでエラーになったことがない者もいます。

ARMテンプレートのいいところとして、Azure Portal からのデプロイ時には指定できない細かい設定を行うことが出来ることです。

やや中級者以上向けかもしれません。

 

WVD にアクセスしても利用できない

WVD のホストプールが作成された状態でもアクセスした時に以下のようなエラーになる場合があります。

管理者がリソースをまだセットアップしていないようです。後でもう一度やり直すか、管理者にお問い合わせください。

原因:ユーザーが設定されていない

このトラブルシューティングでは現状 PowerShell でしか問題解決できません。

以下のコマンドで問題を確認し、解決しましょう。

# ログイン
Add-RdsAccount -DeploymentUrl “https://rdbroker.wvd.microsoft.com”

 

# Hostpool を確認
Get-RdsHostPool -TenantName テナント名

 

# AppGroup を確認 ※現在は固定で「Desktop Application Group」
Get-RdsAppGroup -TenantName テナント名 -HostPoolName Hostpool名

 

# AppGroupUser を確認
Get-RdsAppGroupUser -TenantName テナント名 -HostPoolName Hostpool名 -AppGroupName “Desktop Application Group”

 

# ユーザーを追加
Add-RdsAppGroupUser -TenantName テナント名 -HostPoolName Hostpool名 -AppGroupName “Desktop Application Group” -UserPrincipalName UPN(メールアドレス)

 

ホストプールが出来ているにもかかわらず、利用できなかった方はユーザー追加することで利用できるようになったはずです。

 

これらの PowerShell を実行するにあたって WVD の構成を把握しているとイメージできるかと思います。これはインターネット上に公開されていたマイクロソフト社の資料から抜粋したものです。

以上です。
いかがでしょうか?少しでも問題解決のお役に立てると幸いです。

弊社では Windows Virtual Desktop の導入支援を行っていますので、お気軽にご相談ください。

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、弊社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。