Identyfikowanie i diagnozowanie problemów w usłudze Azure Virtual Desktop (wersja klasyczna)
Ważne
Ta zawartość dotyczy usługi Azure Virtual Desktop (klasycznej), która nie obsługuje obiektów usługi Azure Resource Manager usługi Azure Virtual Desktop. Jeśli próbujesz zarządzać obiektami usługi Azure Resource Manager usługi Azure Virtual Desktop, zobacz ten artykuł.
Usługa Azure Virtual Desktop oferuje funkcję diagnostyki, która umożliwia administratorowi identyfikowanie problemów za pomocą jednego interfejsu. Role usługi Azure Virtual Desktop rejestrują aktywność diagnostyczną za każdym razem, gdy użytkownik wchodzi w interakcję z systemem. Każdy dziennik zawiera istotne informacje, takie jak role usługi Azure Virtual Desktop związane z transakcją, komunikaty o błędach, informacje o dzierżawie i informacje o użytkowniku. Działania diagnostyczne są tworzone zarówno przez użytkownika końcowego, jak i akcje administracyjne i można je podzielić na trzy główne zasobniki:
- Działania subskrypcji kanału informacyjnego: użytkownik końcowy wyzwala te działania za każdym razem, gdy próbuje nawiązać połączenie z kanałem informacyjnym za pośrednictwem Pulpit zdalny Microsoft aplikacji.
- działania Połączenie ion: użytkownik końcowy wyzwala te działania za każdym razem, gdy próbuje nawiązać połączenie z pulpitem lub usługą RemoteApp za pośrednictwem aplikacji Pulpit zdalny Microsoft.
- Działania związane z zarządzaniem: administrator wyzwala te działania za każdym razem, gdy wykonują operacje zarządzania w systemie, takie jak tworzenie pul hostów, przypisywanie użytkowników do grup aplikacji i tworzenie przypisań ról.
Połączenie ions, które nie docierają do usługi Azure Virtual Desktop, nie będą wyświetlane w wynikach diagnostyki, ponieważ sama usługa roli diagnostyki jest częścią usługi Azure Virtual Desktop. Problemy z połączeniem usługi Azure Virtual Desktop mogą wystąpić, gdy użytkownik końcowy ma problemy z łącznością sieciową.
Aby rozpocząć, pobierz i zaimportuj moduł Programu PowerShell usługi Azure Virtual Desktop do użycia w sesji programu PowerShell, jeśli jeszcze tego nie zrobiono. Następnie uruchom następujące polecenie cmdlet, aby zalogować się do konta:
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"
Diagnozowanie problemów z programem PowerShell
Diagnostyka usługi Azure Virtual Desktop używa tylko jednego polecenia cmdlet programu PowerShell, ale zawiera wiele opcjonalnych parametrów, które ułatwiają zawężenie i izolowanie problemów. W poniższych sekcjach wymieniono polecenia cmdlet, które można uruchomić, aby zdiagnozować problemy. Większość filtrów można zastosować razem. Wartości wymienione w nawiasach kwadratowych, takie jak <tenantName>
, powinny zostać zastąpione wartościami, które mają zastosowanie do danej sytuacji.
Ważne
Funkcja diagnostyki służy do rozwiązywania problemów z jednym użytkownikiem. Wszystkie zapytania korzystające z programu PowerShell muszą zawierać parametry -UserName lub -ActivityID . W przypadku możliwości monitorowania użyj usługi Log Analytics. Aby uzyskać więcej informacji na temat wysyłania danych diagnostycznych do obszaru roboczego, zobacz Używanie usługi Log Analytics do funkcji diagnostyki.
Filtrowanie działań diagnostycznych według użytkownika
Parametr -UserName zwraca listę działań diagnostycznych zainicjowanych przez określonego użytkownika, jak pokazano w poniższym przykładowym poleceniu cmdlet.
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN>
Parametr -UserName można również połączyć z innymi opcjonalnymi parametrami filtrowania.
Filtrowanie działań diagnostycznych według czasu
Listę zwróconych działań diagnostycznych można filtrować przy użyciu parametrów -StartTime i -EndTime . Parametr -StartTime zwróci listę działań diagnostycznych rozpoczynającą się od określonej daty, jak pokazano w poniższym przykładzie.
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018"
Parametr -EndTime można dodać do polecenia cmdlet z parametrem -StartTime, aby określić określony okres czasu, dla którego chcesz otrzymywać wyniki. Poniższe przykładowe polecenie cmdlet zwróci listę działań diagnostycznych z zakresu od 1 sierpnia do 10 sierpnia.
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -StartTime "08/01/2018" -EndTime "08/10/2018"
Parametry -StartTime i -EndTime można również łączyć z innymi opcjonalnymi parametrami filtrowania.
Filtrowanie działań diagnostycznych według typu działania
Możesz również filtrować działania diagnostyczne według typu działania za pomocą parametru -ActivityType . Następujące polecenie cmdlet zwróci listę połączeń użytkowników końcowych:
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -ActivityType Connection
Następujące polecenie cmdlet zwróci listę zadań zarządzania administratorami:
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityType Management
Polecenie cmdlet Get-RdsDiagnosticActivities nie obsługuje obecnie określania źródła danych jako typ działania.
Filtrowanie działań diagnostycznych według wyniku
Listę zwróconych działań diagnostycznych można filtrować według wyniku za pomocą parametru -Result . Poniższe przykładowe polecenie cmdlet zwróci listę pomyślnych działań diagnostycznych.
Get-RdsDiagnosticActivities -TenantName <tenantName> -UserName <UserUPN> -Outcome Success
Poniższe przykładowe polecenie cmdlet zwróci listę nieudanych działań diagnostycznych.
Get-RdsDiagnosticActivities -TenantName <tenantName> -Outcome Failure
Parametr -Result można również połączyć z innymi opcjonalnymi parametrami filtrowania.
Pobieranie określonego działania diagnostycznego według identyfikatora działania
Parametr -ActivityId zwraca określone działanie diagnostyczne, jeśli istnieje, jak pokazano w poniższym przykładowym poleceniu cmdlet.
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityIdGuid>
Wyświetlanie komunikatów o błędach dla działania, które zakończyło się niepowodzeniem według identyfikatora działania
Aby wyświetlić komunikaty o błędach dla działania, które zakończyło się niepowodzeniem, należy uruchomić polecenie cmdlet z parametrem -Detailed . Listę błędów można wyświetlić, uruchamiając polecenie cmdlet Select-Object .
Get-RdsDiagnosticActivities -TenantName <tenantname> -ActivityId <ActivityGuid> -Detailed | Select-Object -ExpandProperty Errors
Pobieranie szczegółowych działań diagnostycznych
Parametr -Detailed zawiera dodatkowe szczegóły dla każdego zwróconego działania diagnostycznego. Format każdego działania różni się w zależności od typu działania. Parametr -Detailed można dodać do dowolnego zapytania Get-RdsDiagnosticActivities , jak pokazano w poniższym przykładzie.
Get-RdsDiagnosticActivities -TenantName <tenantName> -ActivityId <ActivityGuid> -Detailed
Typowe scenariusze błędów
Scenariusze błędów są podzielone na kategorie wewnętrzne w usłudze i poza usługą Azure Virtual Desktop.
- Problem wewnętrzny: określa scenariusze, których nie można rozwiązać przez administratora dzierżawy i należy rozwiązać jako problem z pomocą techniczną. Podczas przekazywania opinii za pośrednictwem społeczności technicznej usługi Azure Virtual Desktop uwzględnij identyfikator działania i przybliżony przedział czasu wystąpienia problemu.
- Problem zewnętrzny: odnosi się do scenariuszy, które mogą zostać złagodzone przez administratora systemu. Są one zewnętrzne dla usługi Azure Virtual Desktop.
W poniższej tabeli wymieniono typowe błędy, w których mogą wystąpić administratorzy.
Uwaga
Ta lista zawiera najczęściej występujące błędy i jest aktualizowana w regularnych okresach. Aby upewnić się, że masz najbardziej aktualne informacje, pamiętaj, aby wrócić do tego artykułu co najmniej raz w miesiącu.
Kody błędów zarządzania zewnętrznego
Kod liczbowy | Kod błędu | Sugerowane rozwiązanie |
---|---|---|
1322 | Połączenie ionFailedNoMappingOfSIDinAD | Użytkownik nie jest członkiem identyfikatora Entra firmy Microsoft. Postępuj zgodnie z instrukcjami w usłudze Active Directory Administracja istrative Center, aby je dodać. |
3 | Brak autoryzacji dostępu | Użytkownik, który próbował uruchomić administracyjne polecenie cmdlet programu PowerShell, nie ma uprawnień do tego lub błędnie wtypował swoją nazwę użytkownika. |
1000 | TenantNotFound | Wprowadzona nazwa dzierżawy nie jest zgodna z żadną istniejącą dzierżawą. Przejrzyj nazwę dzierżawy dla literówek i spróbuj ponownie. |
1006 | TenantCannotBeRemovedHasSessionHostPools | Nie można usunąć dzierżawy, o ile zawiera ona obiekty. Najpierw usuń pule hostów sesji, a następnie spróbuj ponownie. |
2000 | HostPoolNotFound | Wprowadzona nazwa puli hostów nie jest zgodna z żadną istniejącą pulą hostów. Przejrzyj nazwę puli hostów pod kątem literówek i spróbuj ponownie. |
2005 | HostPoolCannotBeRemovedHasApplicationGroups | Nie można usunąć puli hostów, o ile zawiera ona obiekty. Najpierw usuń wszystkie grupy aplikacji w puli hostów. |
2004 | HostPoolCannotBeRemovedHasSessionHosts | Usuń wszystkie hosty sesji przed usunięciem puli hostów sesji. |
5001 | SessionHostNotFound | Host sesji, którego dotyczy zapytanie, może być w trybie offline. Sprawdź stan puli hostów. |
5008 | SessionHostUserSessionsExist | Przed wykonaniem zamierzonego działania zarządzania należy wylogować wszystkich użytkowników na hoście sesji. |
6000 | AppGroupNotFound | Wprowadzona nazwa grupy aplikacji nie jest zgodna z żadną istniejącą grupą aplikacji. Przejrzyj nazwę grupy aplikacji dla literówek i spróbuj ponownie. |
6022 | RemoteAppNotFound | Wprowadzona nazwa usługi RemoteApp nie jest zgodna z żadną aplikacją. Przejrzyj nazwę usługi RemoteApp pod kątem literówek i spróbuj ponownie. |
6010 | PublishedItemsExist | Nazwa zasobu, który próbujesz opublikować, jest taka sama jak zasób, który już istnieje. Zmień nazwę zasobu i spróbuj ponownie. |
7002 | NameNotValidWhiteSpace | Nie używaj białych znaków w nazwie. |
8000 | InvalidAuthorizationRoleScope | Wprowadzona nazwa roli nie jest zgodna z żadną istniejącą nazwą roli. Przejrzyj nazwę roli dla literówek i spróbuj ponownie. |
8001 | UserNotFound | Wprowadzona nazwa użytkownika nie jest zgodna z żadnymi istniejącymi nazwami użytkowników. Przejrzyj nazwę literówek i spróbuj ponownie. |
8005 | UserNotFoundInAAD | Wprowadzona nazwa użytkownika nie jest zgodna z żadnymi istniejącymi nazwami użytkowników. Przejrzyj nazwę literówek i spróbuj ponownie. |
8008 | TenantConsentRequired | Postępuj zgodnie z instrukcjami podanymi tutaj , aby wyrazić zgodę na dzierżawę. |
Kody błędów połączenia zewnętrznego
Kod liczbowy | Kod błędu | Sugerowane rozwiązanie |
---|---|---|
-2147467259 | Połączenie ionFailedAdErrorNoSuchMember | Użytkownik nie jest członkiem usługi Active Directory. Postępuj zgodnie z instrukcjami w usłudze Active Directory Administracja istrative Center, aby je dodać. |
-2147467259 | Połączenie ionFailedAdTrustedRelationshipFailure | Host sesji nie jest poprawnie przyłączony do usługi Active Directory. |
-2146233088 | Połączenie ionFailedUserHasValidSessionButRdshIs w złej kondycji | Połączenia nie powiodły się, ponieważ host sesji jest niedostępny. Sprawdź kondycję hosta sesji. |
-2146233088 | Połączenie ionFailedClientDisconnect | Jeśli ten błąd jest często wyświetlany, upewnij się, że komputer użytkownika jest połączony z siecią. |
-2146233088 | Połączenie ionFailedNoHealthyRdshAvailable | Sesja, z z którymi użytkownik hosta próbował nawiązać połączenie, nie jest w dobrej kondycji. Debugowanie maszyny wirtualnej. |
-2146233088 | Połączenie ionFailedUserNotAuthorized | Użytkownik nie ma uprawnień dostępu do opublikowanej aplikacji ani pulpitu. Błąd może pojawić się po usunięciu opublikowanych zasobów przez administratora. Poproś użytkownika o odświeżenie kanału informacyjnego w aplikacji pulpitu zdalnego. |
2 | FileNotFound | Aplikacja, do których użytkownik próbował uzyskać dostęp, jest niepoprawnie zainstalowana lub ustawiona na nieprawidłową ścieżkę. |
3 | InvalidCredentials | Nazwa użytkownika lub hasło wprowadzone przez użytkownika nie są zgodne z istniejącymi nazwami użytkownika ani hasłami. Przejrzyj poświadczenia dla literówek i spróbuj ponownie. |
8 | Połączenie ionBroken | Połączenie między klientem a bramą lub serwerem spadło. Nie trzeba podejmować żadnych działań, chyba że wystąpi nieoczekiwanie. |
14 | UnexpectedNetworkDisconnect | Połączenie z siecią spadło. Poproś użytkownika o ponowne nawiązanie połączenia. |
24 | Odwrotnie Połączenie Failed | Maszyna wirtualna hosta nie ma bezpośredniego widoku bramy usług pulpitu zdalnego. Upewnij się, że można rozpoznać adres IP bramy. |
1322 | Połączenie ionFailedNoMappingOfSIDinAD | Użytkownik nie jest członkiem usługi Active Directory. Postępuj zgodnie z instrukcjami w usłudze Active Directory Administracja istrative Center, aby je dodać. |
Następne kroki
Aby dowiedzieć się więcej o rolach w usłudze Azure Virtual Desktop, zobacz Środowisko usługi Azure Virtual Desktop.
Aby wyświetlić listę dostępnych poleceń cmdlet programu PowerShell dla usługi Azure Virtual Desktop, zobacz dokumentację programu PowerShell.