Azure Virtual Desktop (クラシック) で問題を特定して診断する
大事な
このコンテンツは、Azure Resource Manager Azure Virtual Desktop オブジェクトをサポートしていない Azure Virtual Desktop (クラシック) に適用されます。 Azure Resource Manager Azure Virtual Desktop オブジェクトを管理しようとしている場合は、この記事
Azure Virtual Desktop には、管理者が 1 つのインターフェイスを介して問題を特定できる診断機能が用意されています。 Azure Virtual Desktop ロールは、ユーザーがシステムと対話するたびに診断アクティビティをログに記録します。 各ログには、トランザクションに関連する Azure Virtual Desktop ロール、エラー メッセージ、テナント情報、ユーザー情報などの関連情報が含まれています。 診断アクティビティは、エンド ユーザーと管理アクションの両方によって作成され、次の 3 つの主要なバケットに分類できます。
- フィード サブスクリプション アクティビティ: エンド ユーザーは、Microsoft リモート デスクトップ アプリケーションを介してフィードに接続しようとするたびに、これらのアクティビティをトリガーします。
- 接続アクティビティ: エンド ユーザーは、Microsoft リモート デスクトップ アプリケーションを介してデスクトップまたは RemoteApp に接続しようとするたびに、これらのアクティビティをトリガーします。
- 管理アクティビティ: 管理者は、ホスト プールの作成、アプリケーション グループへのユーザーの割り当て、ロールの割り当ての作成など、システムで管理操作を実行するたびに、これらのアクティビティをトリガーします。
診断ロール サービス自体が Azure Virtual Desktop の一部であるため、Azure Virtual Desktop に到達しない接続は診断結果に表示されません。 Azure Virtual Desktop 接続の問題は、エンド ユーザーがネットワーク接続の問題を経験している場合に発生する可能性があります。
開始するには、まだ PowerShell セッションで使用する Azure Virtual Desktop PowerShell モジュール をダウンロードしてインポート
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"
PowerShell に関する問題を診断する
Azure Virtual Desktop 診断では、1 つの PowerShell コマンドレットのみを使用しますが、問題を絞り込んで分離するのに役立つ多くの省略可能なパラメーターが含まれています。 次のセクションでは、問題を診断するために実行できるコマンドレットの一覧を示します。 ほとんどのフィルターは一緒に適用できます。
<tenantName>
など、角かっこで囲まれた値は、状況に適用される値に置き換える必要があります。
大事な
診断機能は、単一ユーザーのトラブルシューティング用です。 PowerShell を使用するすべてのクエリには、
ユーザーごとに診断アクティビティをフィルターする
-UserName パラメーターは、次のコマンドレット例に示すように、指定したユーザーによって開始された診断アクティビティの一覧を返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN>
-UserName パラメーターは、他のオプションのフィルター処理パラメーターと組み合わせることもできます。
診断アクティビティを時間でフィルター処理する
返された診断アクティビティの一覧は、-StartTime と -EndTime パラメーターを使ってフィルター処理できます。 -StartTime パラメーターは、次の例に示すように、特定の日付から始まる診断アクティビティ の一覧を返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018"
-EndTime パラメーターは、-StartTime パラメーターを使用してコマンドレットに追加して、結果を受け取る特定の期間を指定できます。 次のコマンドレット例は、8 月 1 日から 8 月 10 日までの診断アクティビティの一覧を返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018" -EndTime "08/10/2018"
アクティビティの種類で診断アクティビティをフィルター処理する
-ActivityType パラメーターを使用して、アクティビティの種類別に診断アクティビティをフィルター処理することもできます。 次のコマンドレットは、エンドユーザー接続の一覧を返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -ActivityType Connection
次のコマンドレットは、管理者管理タスクの一覧を返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityType Management
Get-RdsDiagnosticActivities コマンドレットでは、現在、Feed を ActivityType として指定することはできません。
結果で診断活動をフィルタリングする
-Outcome パラメーターを使用して、返された診断アクティビティの一覧を結果でフィルター処理できます。 次のコマンドレット例は、成功した診断アクティビティの一覧を返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -Outcome Success
次のコマンドレット例は、失敗した診断アクティビティの一覧を返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -Outcome Failure
-Outcome パラメーターは、他のオプションのフィルター処理パラメーターと組み合わせることもできます。
アクティビティ ID を使用して特定の診断アクティビティを取得する
-ActivityId パラメーターは、次のコマンドレット例に示すように、特定の診断アクティビティが存在する場合に返します。
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityIdGuid>
アクティビティ ID で失敗したアクティビティのエラー メッセージを表示する
失敗したアクティビティのエラー メッセージを表示するには、-Detailed パラメーターを指定してコマンドレットを実行する必要があります。 Select-Object コマンドレットを実行すると、エラーの一覧を表示できます。
Get-RdsDiagnosticActivities -TenantName <tenantname> -ActivityId <ActivityGuid> -Detailed | Select-Object -ExpandProperty Errors
詳細な診断アクティビティを取得する
-Detailed パラメーターは、返される各診断アクティビティの追加の詳細を提供します。 各アクティビティの形式は、アクティビティの種類によって異なります。
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityGuid> -Detailed
一般的なエラー シナリオ
エラー シナリオは、サービスの内部と Azure Virtual Desktop の外部に分類されます。
- 内部の問題: テナント管理者が軽減できないシナリオを指定し、サポートの問題として解決する必要があります。 Azure Virtual Desktop Tech Communityを通じてフィードバックを提供する場合は、アクティビティ ID と問題が発生したおおよその時間枠を含めます。
- 外部の問題: システム管理者が軽減できるシナリオに関連します。 これらは Azure Virtual Desktop の外部にあります。
次の表に、管理者が直面する可能性がある一般的なエラーを示します。
手記
この一覧には最も一般的なエラーが含まれており、定期的に更新されます。 最新の up-to情報を確実に取得するには、少なくとも月に 1 回、この記事を確認してください。
外部管理エラー コード
数値コード | エラー コード | 推奨されるソリューション |
---|---|---|
1322 | 接続失敗:SIDがADにマッピングされていません | ユーザーは Microsoft Entra ID のメンバーではありません。 Active Directory 管理センター の指示に従って追加します。 |
3 | 不正アクセス | 管理 PowerShell コマンドレットを実行しようとしたユーザーは、実行するアクセス許可を持っていないか、ユーザー名を誤って入力しました。 |
1000 | テナントが見つかりません | 入力したテナント名が既存のテナントと一致しません。 テナント名で入力ミスを確認し、もう一度やり直してください。 |
1006 | テナントを削除できません。セッションホストプールがあります。 | オブジェクトが含まれている限り、テナントを削除することはできません。 最初にセッション ホスト プールを削除してから、もう一度やり直してください。 |
2000 | ホストプールが見つかりません | 入力したホスト プール名が既存のホスト プールと一致しません。 ホスト プール名で入力ミスを確認し、やり直してください。 |
2005 | HostPoolCannotBeRemovedHasApplicationGroups | オブジェクトが含まれている限り、ホスト プールを削除することはできません。 最初に、ホスト プール内のすべてのアプリケーション グループを削除します。 |
2004 | セッションホストがあるためホストプールは削除できません | セッション ホスト プールを削除する前に、まずすべてのセッション ホストを削除します。 |
5001 | セッションホストが見つかりませんでした | クエリを実行したセッション ホストがオフラインである可能性があります。 ホスト プールの状態を確認します。 |
5008 | セッションホストのユーザーセッションが存在します | 目的の管理アクティビティを実行する前に、セッション ホスト上のすべてのユーザーをサインアウトする必要があります。 |
6000 | アプリグループが見つかりません | 入力したアプリケーション グループ名が既存のアプリケーション グループと一致しません。 アプリケーション グループ名で入力ミスを確認し、もう一度やり直してください。 |
6022 | リモートアプリが見つかりません | 入力した RemoteApp 名がアプリケーションと一致しません。 RemoteApp 名で入力ミスを確認し、やり直してください。 |
6010 | 公開済みのアイテムが存在します | 発行しようとしているリソースの名前は、既に存在するリソースと同じです。 リソース名を変更して、もう一度やり直してください。 |
7002 | NameNotValidWhiteSpace | 名前に空白を使用しないでください。 |
8000 | 無効な認可ロール範囲 | 入力したロール名が既存のロール名と一致しません。 ロール名の入力ミスを確認し、もう一度試してください。 |
8001 | ユーザーが見つかりません | 入力したユーザー名が既存のユーザー名と一致しません。 入力ミスの名前を確認し、もう一度やり直してください。 |
8005 | AADでユーザーが見つかりません | 入力したユーザー名が既存のユーザー名と一致しません。 入力ミスの名前を確認し、もう一度やり直してください。 |
8008 | テナントの同意が必要です | の指示に従って、ここで テナントに同意を提供します。 |
外部接続エラー コード
次の手順
Azure Virtual Desktop 内のロールの詳細については、Azure Virtual Desktop 環境
Azure Virtual Desktop で使用可能な PowerShell コマンドレットの一覧については、PowerShell リファレンスを参照してください。