Поделиться через


Определение и диагностика проблем с помощью Виртуального рабочего стола (классическая версия)

Важно!

Это содержимое применимо к Виртуальному рабочему столу Azure (классическому), который не поддерживает объекты Azure Resource Manager для Виртуального рабочего стола Azure. Сведения об обеспечении управления объектами Azure Resource Manager для Виртуального рабочего стола Azure см. в этой статье.

Виртуальный рабочий стол Azure включает функцию диагностики, которая позволяет администратору выявлять разные проблемы через единый интерфейс. Роли Виртуального рабочего стола Azure записывают диагностические действия в журнал при каждом взаимодействии пользователя с системой. Каждый журнал содержит важную информацию, например об участвующих в транзакции ролях Виртуального рабочего стола Azure, ошибках, арендаторе и пользователе. Диагностические действия создаются действиями пользователей и администраторов, и разбиваются на три основных группы:

  • Действия подписки на веб-канал. Такие действия создаются, когда пользователь пытается подключиться к каналу через приложения Удаленного рабочего стола (Майкрософт).
  • Действия подключения. Такие действия создаются, когда пользователь пытается подключиться к рабочему столу или удаленному приложению RemoteApp через приложения Удаленного рабочего стола (Майкрософт).
  • Действия по управлению: администратор активирует эти действия при выполнении операций управления в системе, таких как создание пулов узлов, назначение пользователей группам приложений и создание назначений ролей.

Подключения, которые не достигают Виртуального рабочего стола Azure, не отображаются в результатах диагностики, так как служба роли диагностики является частью Виртуального рабочего стола Azure. Проблемы с подключением к Виртуальному рабочему столу Azure могут возникнуть, когда пользователь испытывает проблемы с сетевым подключением.

Для начала работы скачайте и импортируйте модуль PowerShell для Виртуального рабочего стола Azure, если вы еще этого не сделали, так как он потребуется для сеанса PowerShell. После этого выполните следующий командлет, чтобы войти в учетную запись:

Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"

Диагностика проблем с помощью PowerShell

Диагностика Виртуального рабочего стола Azure использует только один командлет PowerShell, но он принимает много необязательных параметров, которые позволяют ограничить область поиска и изолировать проблемы. В следующих разделах перечислены командлеты, которые можно выполнять для диагностики проблем. Большинство фильтров можно применять одновременно. Значения, перечисленные в квадратных скобках, например <tenantName>, следует заменить конкретными значениями для вашей среды.

Важно!

Функция диагностики используется для устранения неполадок, возникающих при работе одного пользователя. Все запросы, использующие PowerShell, должны содержать параметр -UserName или -ActivityID. Для мониторинга используйте Log Analytics. Дополнительные сведения о том, как отправить диагностические данные в рабочую область, см. в статье Использование Log Analytics для функции диагностики.

Фильтрация диагностических действий по пользователю

Параметр -UserName возвращает список диагностических действий, инициированных указанным пользователем, как в следующем примере командлета.

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN>

Параметр -UserName можно сочетать с другими необязательными параметрами фильтрации.

Фильтрация диагностических действий по времени

Список диагностических действий можно отфильтровать с использованием параметров -StartTime и -EndTime. Параметр -StartTime включает в список только те диагностические действия, которые произошли после указанной даты, как показано в следующем примере.

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018"

Параметр -EndTime можно добавить в командлет в сочетании с параметром -StartTime, чтобы указать период времени, за который нужно получить результаты. Следующий пример применения командлета вернет список диагностических действий за период с 1 по 10 августа.

Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018" -EndTime "08/10/2018"

Параметры -StartTime и -EndTime можно сочетать с другими необязательными параметрами фильтрации.

Фильтрация диагностических действий по типу действия

Вы также можете фильтровать диагностические действия по типу действия с помощью параметра -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 можно сочетать с другими необязательными параметрами фильтрации.

Получение определенного диагностического действия по его идентификатору

Параметр -ActivityId возвращает конкретное диагностическое действие, если оно существует, как в следующем примере командлета.

Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityIdGuid>

Просмотр сообщений об ошибках для действия, завершившегося сбоем, по его идентификатору

Чтобы просмотреть сообщения об ошибках для действия, завершившегося сбоем, выполните командлет с параметром -Detailed. Список ошибок можно просмотреть, выполнив командлет Select-Object.

Get-RdsDiagnosticActivities -TenantName <tenantname> -ActivityId <ActivityGuid> -Detailed | Select-Object -ExpandProperty Errors

Получение сведений о диагностических действиях

Параметр -Detailed предоставляет дополнительные сведения для каждого из возвращаемых диагностических действий. Формат данных для каждого действия зависит от типа этого действия. Параметр -Detailed можно добавить в любой запрос Get-RdsDiagnosticActivities, как показано в следующем примере.

Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityGuid> -Detailed

Распространенные сценарии ошибок

Сценарии ошибок классифицируются как внутренние относительно службы и внешние относительно Виртуального рабочего стола Azure.

  • Внутренней считается ошибка, которая не может быть устранена администратором клиента и которая требует участия специалиста службы поддержки. Оставляя отзыв в сообществе Tech Community по Виртуальному рабочему столу Azure, укажите идентификатор действия и приблизительное время возникновения проблемы.
  • Внешней считается проблема, которая может быть устранена системным администратором. Такие ошибки являются внешними относительно Виртуального рабочего стола Azure.

В следующей таблице перечислены самые распространенные ошибки, с которыми могут столкнуться администраторы.

Примечание.

Этот список регулярно обновляется. Чтобы поддерживать актуальность информации, сверяйтесь с этой статьей хотя бы раз в месяц.

Коды внешних ошибок управления

Числовой код Код ошибки Предлагаемое решение
1322 ConnectionFailedNoMappingOfSIDinAD Пользователь не является членом идентификатора Microsoft Entra. Чтобы добавить его, выполните эти инструкции для Центра администрирования Active Directory.
3 UnauthorizedAccess Пользователь, который пытался запустить командлет PowerShell с правами администратора, не имеет соответствующих разрешений или неправильно указал имя пользователя.
1000 TenantNotFound Введенное имя арендатора не соответствует ни одному из существующих арендаторов. Проверьте имя арендатора на наличие опечаток и повторите попытку.
1006 TenantCannotBeRemovedHasSessionHostPools Невозможно удалить арендатор, пока он содержит объекты. Сначала удалите пулы узлов сеансов, затем повторите попытку.
2000 HostPoolNotFound Введенное имя пула узлов не соответствует ни одному из существующих пулов узлов. Проверьте имя пула узлов на наличие опечаток и повторите попытку.
2005 HostPoolCannotBeRemovedHasApplicationGroups Пул узлов невозможно удалить, пока он содержит объекты. Сначала удалите все группы приложений в пуле узлов.
2004 HostPoolCannotBeRemovedHasSessionHosts Прежде чем удалять пул узлов сеансов, удалите все узлы сеансов.
5001 SessionHostNotFound Возможно, запрошенный узел сеансов отключен от сети. Проверьте состояние пула узлов.
5008 SessionHostUserSessionsExist Прежде чем выполнять требуемое действие управления, необходимо выйти из всех сеансов пользователей на узле сеансов.
6000 AppGroupNotFound Введенное имя группы приложений не соответствует существующим группам приложений. Просмотрите имя группы приложений для опечаток и повторите попытку.
6022 RemoteAppNotFound Введенное имя RemoteApp не соответствует ни одному приложению. Проверьте имя удаленного приложения RemoteApp на наличие опечаток и повторите попытку.
6010 PublishedItemsExist Имя ресурса, который вы пытаетесь опубликовать, совпадает с именем существующего ресурса. Измените имя ресурса и повторите попытку.
7002 NameNotValidWhiteSpace В имени нельзя использовать пробелы.
8000 InvalidAuthorizationRoleScope Введенное имя роли не соответствует ни одной из существующих ролей. Проверьте имя роли на наличие опечаток и повторите попытку.
8001 UserNotFound Введенное имя пользователя не соответствует ни одному из существующих пользователей. Проверьте имя пользователя на наличие опечаток и повторите попытку.
8005 UserNotFoundInAAD Введенное имя пользователя не соответствует ни одному из существующих пользователей. Проверьте имя пользователя на наличие опечаток и повторите попытку.
8008 TenantConsentRequired Выполните эти инструкции, чтобы предоставить согласие для клиента.

Коды внешних ошибок подключения

Числовой код Код ошибки Предлагаемое решение
-2147467259 ConnectionFailedAdErrorNoSuchMember Пользователь не является членом Azure Active Directory. Чтобы добавить его, выполните эти инструкции для Центра администрирования Active Directory.
-2147467259 ConnectionFailedAdTrustedRelationshipFailure Узел сеансов неправильно присоединен к Active Directory.
-2146233088 ConnectionFailedUserHasValidSessionButRdshIsUnhealthy Не удалось установить подключение, так как узел сеансов недоступен. Проверьте работоспособность узла сеансов.
-2146233088 ConnectionFailedClientDisconnect Если эта ошибка возникает часто, убедитесь, что компьютер пользователя подключен к сети.
-2146233088 ConnectionFailedNoHealthyRdshAvailable Сеанс, к которому пытался подключиться пользователь узла, неработоспособен. Выполните отладку виртуальной машины.
-2146233088 ConnectionFailedUserNotAuthorized У пользователя нет разрешений на доступ к опубликованному приложению или рабочему столу. Эта ошибка может появиться после того, как администратор удалит опубликованные ресурсы. Попросите пользователя обновить веб-канал в приложении удаленного рабочего стола.
2 FileNotFound Приложение, к которому пользователь пытался получить доступ, установлено неправильно либо настроено с неправильным путем.
3 InvalidCredentials Имя пользователя или пароль, введенные пользователем, не совпадают с существующими именами пользователей и паролями. Проверьте учетные данные на наличие опечаток и повторите попытку.
8 ConnectionBroken Подключение между клиентом и шлюзом или сервером разорвано. Никаких действий не требуется, если это не происходит неожиданно.
14 UnexpectedNetworkDisconnect Подключение к сети разорвано. Попросите пользователя установить подключение.
24 ReverseConnectFailed Виртуальная машина узла не имеет прямой связи с шлюзом удаленных рабочих столов. Убедитесь, что IP-адрес шлюза успешно разрешается.
1322 ConnectionFailedNoMappingOfSIDinAD Пользователь не является членом Azure Active Directory. Чтобы добавить его, выполните эти инструкции для Центра администрирования Active Directory.

Следующие шаги

Дополнительные сведения о ролях для Виртуального рабочего стола Azure см. в статье Среда Виртуального рабочего стола Azure.

Список доступных командлетов PowerShell для Виртуального рабочего стола Azure см. в документации по PowerShell.