تحديد المشكلات وتشخيصها في Azure Virtual Desktop (الكلاسيكي)

هام

ينطبق هذا المحتوى على Azure Virtual Desktop (الكلاسيكي)، الذي لا يدعم عناصرAzure Resource Manager وAzure Virtual Desktop. إذا كنت تحاول إدارة كائناتAzure Resource Manager Azure Virtual Desktop، راجع هذه المقالة.

يوفر Azure Virtual Desktop ميزة تشخيص تسمح للمسؤول بتحديد المشكلات من خلال واجهة واحدة. تسجل أدوار Azure Virtual Desktop نشاطًا تشخيصيًا كلما تفاعل المستخدم مع النظام. يحتوي كل سجل على معلومات ذات صلة مثل أدوار Azure Virtual Desktop المتضمنة في العملية ورسائل الخطأ ومعلومات المستأجر ومعلومات المستخدم. تُنشأ أنشطة التشخيص من خلال كل من المستخدم النهائي والإجراءات الإدارية ويمكن تصنيفها إلى ثلاث مستودعات رئيسية:

  • أنشطة اشتراك الموجز: يشغّل المستخدم النهائي هذه الأنشطة كلما حاول الاتصال بموجزه من خلال تطبيقات سطح المكتب البعيد لـ Microsoft.
  • أنشطة الاتصال: يشغّل المستخدم النهائي هذه الأنشطة كلما حاول الاتصال بسطح المكتب أو RemoteApp من خلال تطبيقات سطح المكتب البعيد لـ Microsoft.
  • أنشطة الإدارة: يقوم المسؤول بتشغيل هذه الأنشطة كلما أجرى عمليات إدارة على النظام، مثل إنشاء تجمعات المضيفين، وتعيين المستخدمين لمجموعات التطبيقات، وإنشاء تعيينات الأدوار.

لن تظهر الاتصالات التي لا تصل إلى Azure Virtual Desktop في نتائج التشخيص لأن خدمة دور التشخيص نفسها تعتبر جزءًا من Azure Virtual Desktop. قد تحدث مشكلات اتصال Azure Virtual Desktop عندما يواجه المستخدم النهائي مشكلات في اتصال الشبكة.

للبدء، قم بتنزيل واستيراد وحدة Azure Virtual Desktop PowerShell لاستخدامها في جلسة PowerShell إذا لم تكن قد أجريت ذلك بالفعل. بعد ذلك، شغّل cmdlet التالية لتسجيل الدخول إلى حسابك:

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

تشخيص المشكلات المتعلقة بـ PowerShell

تشخيصات Azure Virtual Desktop تستخدم PowerShell cmdlet واحدة فقط، لكنها تحتوي على العديد من المعلمات الاختيارية للمساعدة في تضييق نطاق المشكلات وعزلها. تسرد الأقسام التالية أوامر cmdlets التي بإمكانك تشغيلها لتشخيص المشكلات. يمكن تطبيق أغلب عوامل التصفية معًا. يجب استبدال القيم المدرجة بين قوسين، مثل <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 إلى cmdlet مع المعلمة -StartTime لتحديد فترة زمنية معينة ترغب في تلقي النتائج لها. سيعيد مثال cmdlet التالي قائمة بأنشطة التشخيص من 1 أغسطس حتى 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 حاليًا تحديد الموجز كنوع النشاط.

عامل تصفية الأنشطة التشخيصية حسب النتيجة

بإمكانك تصفية قائمة النشاط التشخيصي التي تم إرجاعها حسب النتيجة باستخدام المعلمة -Outcome. سيُعيد مثال cmdlet التالي قائمة بالأنشطة التشخيصية الناجحة.

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

سيُعيد مثال cmdlet التالي قائمة بالأنشطة التشخيصية غير المكتملة.

Get-RdsDiagnosticActivities -TenantName <tenantName> -Outcome Failure

كما يمكن دمج المعلمة -Outcome مع معلمات التصفية الاختيارية الأخرى.

استرداد نشاط تشخيصي محدد عن طريق معرّف النشاط

تُعيد المعلمة -ActivityId نشاطًا تشخيصيًا معينًا إذا كان موجودًا، كما هو موضح في مثال cmdlet التالي.

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

عرض رسائل الخطأ لنشاط فاشل حسب معرّف النشاط

لعرض رسائل الخطأ لنشاط فاشل، يجب تشغيل cmdlet مع المعلمة -Detailed. بإمكانك عرض قائمة الأخطاء عن طريق تشغيل 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 Virtual Desktop.

  • المشكلة الداخلية: تحدد السيناريوهات التي لا يمكن تخفيفها من جانب مسؤول المستأجر وتحتاج إلى حلها كمسألة دعم. عند تقديم الملاحظات من خلال Azure Virtual Desktop Tech Community، قم بتضمين معرّف النشاط والإطار الزمني التقريبي لوقت حدوث المشكلة.
  • المشكلة الخارجية: تتعلق بالسيناريوهات التي يمكن تخفيفها من جانب مسؤول النظام. يعتبر ما يلي خارجيًا بالنسبة إلى Azure Virtual Desktop.

يسرد الجدول التالي الأخطاء الشائعة التي قد يواجهها المسؤولون.

إشعار

تتضمن هذه القائمة الأخطاء الأكثر شيوعًا ويتم تحديثها بشكل منتظم. للتأكد من أن لديك أحدث المعلومات، احرص على التحقق مرة أخرى من هذه المقالة مرة واحدة على الأقل في الشهر.

رموز أخطاء الإدارة الخارجية

التعليمة البرمجية الرقمية رمز الخطأ الحل المُقترح
1322 ConnectionFailedNoMappingOfSIDinAD المستخدم ليس عضوا في معرف Microsoft Entra. اتبع الإرشادات الموجودة في Active Directory Administrative Center لإضافته.
3 UnauthorizedAccess يكون المستخدم الذي حاول تشغيل PowerShell cmdlet الإداري إما ليس لديه أذونات للقيام بذلك أو أخطأ في كتابة اسم المستخدم الخاص به.
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 المستخدم ليس عضوًا في Microsoft Azure Active Directory. اتبع الإرشادات الموجودة في Active Directory Administrative Center لإضافته.
-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 المستخدم ليس عضوًا في Microsoft Azure Active Directory. اتبع الإرشادات الموجودة في Active Directory Administrative Center لإضافته.

الخطوات التالية

لمعرفة المزيد حول الأدوار الموجودة ضمن Azure Virtual Desktop، راجع بيئة Azure Virtual Desktop.

للاطلاع على قائمة أوامر PowerShell cmdlets المتوفرة لـ Azure Virtual Desktop، راجع مرجع PowerShell.