識別和診斷 Azure 虛擬桌面中的問題(傳統版)
重要
此內容適用於不支援 Azure Resource Manager Azure 虛擬桌面物件的 Azure 虛擬桌面(傳統版)。 如果您嘗試管理 Azure Resource Manager Azure 虛擬桌面物件,請參閱 本文。
Azure 虛擬桌面提供診斷功能,可讓系統管理員透過單一介面來識別問題。 每當使用者與系統互動時,Azure 虛擬桌面角色都會記錄診斷活動。 每個記錄都包含相關資訊,例如交易所涉及的 Azure 虛擬桌面角色、錯誤訊息、租戶資訊和使用者資訊。 診斷活動是由最終使用者和管理員的動作所建立,並可分類為三個主要類別:
- 摘要訂閱活動:使用者只要嘗試透過Microsoft遠端桌面應用程式連線到其摘要,就會觸發這些活動。
- 連線活動:最終使用者只要嘗試透過 Microsoft Remote Desktop 應用程式連線到桌面或 RemoteApp,就會觸發這些活動。
- 管理活動:系統管理員會在系統上執行管理作業時觸發這些活動,例如建立主機集區、將使用者指派給應用程式群組,以及建立角色指派。
無法連線到 Azure 虛擬桌面的連線不會顯示在診斷結果中,因為診斷角色服務本身是 Azure 虛擬桌面的一部分。 當使用者遇到網路連線問題時,可能會發生 Azure 虛擬桌面連線問題。
若要開始使用,下載並匯入 Azure 虛擬桌面 PowerShell 模組, 如果您尚未這樣做,以便在 PowerShell 會話中使用。 之後,請執行下列 Cmdlet 來登入您的帳戶:
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"
診斷PowerShell的問題
Azure 虛擬桌面診斷只使用一個 PowerShell Cmdlet,但包含許多選擇性參數,以協助縮小和隔離問題。 下列各節列出您可以執行的 Cmdlet 來診斷問題。 大部分篩選都可以一起套用。 括弧中所列的值,例如 <tenantName>
,應該以適用於您情況的值取代。
重要
診斷功能適用於單一使用者疑難解答。 所有使用 PowerShell 的查詢都必須包含 -UserName 或 -ActivityID 參數。 若要監視功能,請使用Log Analytics。 如需有關如何將診斷數據傳送至工作區的詳細資訊,請參閱 使用 Log Analytics 的診斷功能。
依使用者篩選診斷活動
-UserName 參數會傳回指定使用者起始的診斷活動清單,如下列範例 Cmdlet 所示。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN>
-UserName 參數也可以與其他選擇性篩選參數結合。
依時間篩選診斷活動
您可以使用 -StartTime 和 -EndTime 參數來篩選傳回的診斷活動清單。 -StartTime 參數會傳回從特定日期開始的診斷活動清單,如下列範例所示。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018"
-EndTime 參數可以新增至具有 -StartTime 參數的 Cmdlet,以指定您想要接收結果的特定時間週期。 下列範例 Cmdlet 會從 8 月 1 日至 8 月 10 日傳回診斷活動清單。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018" -EndTime "08/10/2018"
-StartTime 和 -EndTime 參數也可以與其他選擇性篩選參數結合。
依活動類型篩選診斷活動
您也可以使用 -ActivityType 參數,依活動類型篩選診斷活動。 下列 Cmdlet 會傳回使用者連線清單:
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -ActivityType Connection
下列 Cmdlet 會傳回系統管理員管理工作的清單:
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityType Management
Get-RdsDiagnosticActivities cmdlet 目前不支援將 Feed 指定為 ActivityType。
依結果篩選診斷活動
您可以使用 -Result 參數,依結果篩選傳回的診斷活動清單。 下列範例 Cmdlet 會傳回成功的診斷活動清單。
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -Outcome Success
下列範例 Cmdlet 會傳回失敗的診斷活動清單。
Get-RdsDiagnosticActivities -TenantName <tenantName> -Outcome Failure
-Result 參數也可以與其他選擇性篩選參數結合。
根據活動 ID 擷取特定的診斷活動
-ActivityId 參數會在存在的情況下傳回特定診斷活動,如下列範例 Cmdlet 所示。
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityIdGuid>
依活動識別子檢視失敗活動的錯誤訊息
若要檢視失敗活動的錯誤訊息,您必須使用 -Detailed 參數執行 Cmdlet。 您可以執行 Select-Object Cmdlet,以檢視錯誤清單。
Get-RdsDiagnosticActivities -TenantName <tenantname> -ActivityId <ActivityGuid> -Detailed | Select-Object -ExpandProperty Errors
擷取詳細的診斷活動
-Detailed 參數會為每個傳回的診斷活動提供其他詳細數據。 每個活動的格式會根據其活動類型而有所不同。 -Detailed 參數可以新增至任何一個 Get-RdsDiagnosticActivities 查詢,如下列範例所示。
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityGuid> -Detailed
常見錯誤案例
錯誤案例會分類為服務內部和 Azure 虛擬桌面外部。
- 內部問題:指明無法由租用戶系統管理員解決的情境,需作為支援問題來解決。 透過 Azure 虛擬桌面技術社群提供意見反應時,請包含發生問題時的活動標識碼和大約時間範圍。
- 外部問題:指與可由系統管理員解決的情境相關。 這些是 Azure 虛擬桌面外部的。
下表列出您的系統管理員可能會遇到的常見錯誤。
注意
此清單包含最常見的錯誤,並定期更新。 為了確保您擁有最多 up-to日期資訊,請務必每月至少查看這篇文章一次。
外部管理錯誤碼
數字代碼 | 錯誤碼 | 建議的解決方案 |
---|---|---|
1322 | 連線失敗:在AD中沒有SID的映射 | 使用者不是 Microsoft Entra ID 的成員。 請依照 Active Directory 管理中心 中的指示加以新增。 |
3 | 未經授權存取 | 嘗試執行系統管理 PowerShell Cmdlet 的使用者沒有許可權執行,或輸入使用者名稱錯誤。 |
1000 | 租戶未找到 | 您輸入的租戶名稱不匹配任何現有的租戶。 請檢查租戶名稱是否有拼寫錯誤,然後再試一次。 |
1006 | 無法移除租戶,因為存在會話主機池 | 只要租戶包含物件,您就無法刪除該租戶。 請先刪除會話主機集區,然後再試一次。 |
2000 | HostPoolNotFound | 您輸入的主機集區名稱不符合任何現有的主機集區。 請檢查主機集區名稱是否有錯字,然後再試一次。 |
2005 | 無法移除的主機池,因為有應用程式群組 | 只要主機集區包含物件,您就無法刪除主機集區。 請先移除主機集區中的所有應用程式群組。 |
2004 | 主機池不能移除,因為存在工作階段主機 | 先移除所有會話主機,再刪除會話主機集區。 |
5001 | 無法找到會話主機 | 您查詢的會話主機可能不在線上。 檢查主機集區的狀態。 |
5008 | 會話主機用戶會話存在 | 您必須先註銷會話主機上的所有使用者,才能執行預定的管理活動。 |
6000 | 找不到應用程式群組 | 您輸入的應用程式群組名稱不符合任何現有的應用程式群組。 檢閱應用程式組名中的錯字,然後再試一次。 |
6022 | 未找到遠端應用程式 | 您輸入的 RemoteApp 名稱不符合任何應用程式。 檢閱 RemoteApp 名稱是否有錯字,然後再試一次。 |
6010 | 已發布項目存在 | 您嘗試發佈的資源名稱與已經存在的資源相同。 變更資源名稱,然後再試一次。 |
7002 | NameNotValidWhiteSpace | 請勿在名稱中使用空格符。 |
8000 | 無效授權角色範圍 | 您輸入的角色名稱不符合任何現有的角色名稱。 請檢查角色名稱中的錯字,然後再試一次。 |
8001 | 用戶未找到 | 您輸入的使用者名稱不符合任何現有的用戶名稱。 檢查名稱是否有錯字,然後再試一次。 |
8005 | UserNotFoundInAAD(使用者在 Azure Active Directory 中未找到) | 您輸入的使用者名稱不符合任何現有的用戶名稱。 檢查名稱中是否有錯字,然後再試一次。 |
8008 | 需要租戶同意 | 請依照這裡的指示 ,為您的租使用者提供同意。 |
外部連線錯誤碼
數字代碼 | 錯誤碼 | 建議的解決方案 |
---|---|---|
-2147467259 | 連線失敗廣告錯誤:無此成員 | 使用者不是 Active Directory 的成員。 請依照 Active Directory 管理中心 中的指示加以新增。 |
-2147467259 | 連線失敗:AD信任關係失敗 | 會話主機未正確加入Active Directory。 |
-2146233088 | 連線失敗用戶具有有效的會話但RDSH不健康 | 連線失敗,因為會議主機無法取得。 檢查會話主機的健康狀況。 |
-2146233088 | 連線失敗,客戶端斷線 | 如果您經常看到此錯誤,請確定使用者的計算機已連線到網路。 |
-2146233088 | 連線失敗,沒有可用的健康遠端桌面主機。 | 主機用戶嘗試連線的會話狀況不良。 對虛擬機進行偵錯。 |
-2146233088 | 連線失敗,使用者未經授權 | 用戶沒有存取已發佈應用程式或桌面的許可權。 錯誤可能會出現在系統管理員移除已發佈的資源之後。 請使用者重新整理遠端桌面應用程式中的訊息流。 |
2 | 找不到檔案 | 用戶嘗試存取的應用程式未正確安裝或設定為不正確的路徑。 |
3 | 無效憑證 | 使用者輸入的使用者名稱或密碼不符合任何現有的使用者名稱或密碼。 檢查憑證中的錯字後,再試一次。 |
8 | ConnectionBroken | 用戶端與閘道或伺服器之間的連線已卸除。 除非非預期地發生,否則不需要採取任何動作。 |
14 | 意外網路中斷 | 網路連線已中斷。 要求使用者再次連線。 |
24 | 反向連接失敗 | 主機虛擬機器無法直接連線至 RD 閘道。 確定可以解析閘道IP位址。 |
1322 | 連線失敗:在AD中無法映射SID | 使用者不是 Active Directory 的成員。 請依照 Active Directory 管理中心 中的指示加以新增。 |
後續步驟
若要深入瞭解 Azure 虛擬桌面內的角色,請參閱 Azure 虛擬桌面環境。
若要查看適用於 Azure 虛擬桌面的可用 PowerShell Cmdlet 清單,請參閱 PowerShell 參考。