توسيع نطاق مضيفي الجلسات باستخدام Azure Automation
يمكنك تقليل إجمالي تكلفة توزيع Azure Virtual Desktop عن طريق تحجيم أجهزتك الظاهرية (VMs). وهذا يعني إيقاف تشغيل الأجهزة الظاهرية المضيفة للجلسة وإلغاء تخصيصها خلال ساعات الاستخدام خارج أوقات الذروة، ثم إعادة تشغيلها وإعادة تخصيصها خلال ساعات الذروة.
في هذه المقالة، ستتعرف على أداة القياس التي تم إنشاؤها باستخدام حساب Azure Automation وتطبيق Azure Logic الذي يقوم تلقائيا بقياس الأجهزة الظاهرية المضيفة لجلسة العمل في بيئة سطح المكتب الظاهري ل Azure. لمعرفة كيفية استخدام أداة القياس، انتقل إلى المتطلبات الأساسية.
ملاحظة
لا يمكنك قياس مضيفي الجلسات باستخدام أتمتة Azure واستخدام ميزة القياس التلقائي على نفس تجمع المضيف. يجب عليك استخدام واحد أو آخر.
كيفية عمل أداة التحجيم
توفر أداة التحجيم خيار أتمتة منخفض التكلفة للعملاء الذين يرغبون في تحسين تكاليف الجهاز الظاهري المضيف لجلسة العمل خاصتهم.
يمكنك استخدام أداة التحجيم في:
- جدولة الأجهزة الظاهرية للبدء والتوقف استنادا إلى ساعات العمل الذروة وخارج أوقات الذروة.
- توسيع الأجهزة الظاهرية استناداً إلى عدد جلسات العمل لكل ذاكرة معالج أساسية.
- يمكنك التوسع في الأجهزة الظاهرية خلال ساعات الذروة، مع ترك الحد الأدنى لعدد الأجهزة الظاهرية لمضيف الجلسة قيد التشغيل.
تستخدم أداة التحجيم مجموعة من حساب Azure Automation، ودفتر تشغيل PowerShell، وخطاف الويب، وAzure Logic App للعمل. عند تشغيل الأداة، يستدعي Azure Logic App خطاف الويب لبدء تشغيل دفتر تشغيل Azure Automation. ثم ينشئ دفتر التشغيل وظيفة.
يتم تعريف ساعات الذروة وخارج الذروة على النحو التالي:
| ذروة | خارج الذروة |
|---|---|
| الوقت الذي يتوقع فيه الوصول إلى الحد الأقصى لتزامن جلسة المستخدم. | الوقت الذي يتوقع فيه الوصول إلى الحد الأدنى لتزامن جلسة المستخدم. |
أثناء وقت ذروة الاستخدام، تتحقق الوظيفة من العدد الحالي للجلسات وقدرة الجهاز الظاهري لمضيف جلسة التشغيل الحالية لكل تجمع مضيف. ويستخدم هذه المعلومات لحساب ما إذا كان بإمكان الأجهزة الظاهرية لمضيف جلسة العمل قيد التشغيل دعم جلسات العمل الحالية استنادا إلى المعلمة SessionThresholdPerCPU المحددة لملف CreateOrUpdateAzLogicApp.ps1 . إذا كانت الأجهزة الظاهرية لمضيف جلسة العمل لا تدعم الجلسات الحالية، تبدأ الوظيفة في تشغيل أجهزة ظاهرية مضيفة للجلسة الإضافية في تجمع المضيف.
ملاحظة
لا يقيد SessionThresholdPerCPU عدد الجلسات على الجهاز الظاهري. تحدد هذه المعلمة فقط متى يجب بدء تشغيل الأجهزة الظاهرية الجديدة لتحميل الاتصالات. لتقييد عدد الجلسات ، تحتاج إلى اتباع الإرشادات Update-AzWvdHostPool لتكوين المعلمة MaxSessionLimit وفقا لذلك.
أثناء وقت الاستخدام خارج أوقات الذروة، تحدد المهمة عدد الأجهزة الظاهرية لمضيف جلسة العمل التي يجب إيقاف تشغيلها استنادا إلى المعلمة MinimumNumberOfRDSH . إذا قمت بتعيين المعلمة LimitSecondsToForceLogOffUser إلى قيمة موجبة غير صفرية، فستقوم المهمة بتعيين الأجهزة الظاهرية لمضيف الجلسة إلى وضع التصريف لمنع الجلسات الجديدة من الاتصال بالمضيفين. ستقوم المهمة بعد ذلك بإعلام أي مستخدمين قاموا بتسجيل الدخول حاليا لحفظ عملهم، والانتظار لفترة الوقت التي تم تكوينها، ثم إجبار المستخدمين على تسجيل الخروج. بمجرد تسجيل خروج جميع جلسات المستخدم على الجهاز الظاهري لمضيف الجلسة، ستقوم المهمة بإيقاف تشغيل الجهاز الظاهري. بعد إيقاف تشغيل الجهاز الظاهري، ستعمل الوظيفة على إعادة تعيين وضع تفريغ مضيف الجلسة.
ملاحظة
إذا قمت بتعيين الجهاز الظاهري لمضيف الجلسة يدويا إلى وضع الاستنزاف، فلن تتمكن المهمة من إدارة الجهاز الظاهري لمضيف الجلسة. إذا كان الجهاز الظاهري لمضيف الجلسة قيد التشغيل وتم تعيينه على وضع التصريف ، التعامل معه على أنه غير متوفر ، مما سيجعل المهمة تبدأ أجهزة ظاهرية إضافية للتعامل مع الحمل. نوصيك بوضع علامة على أي أجهزة ظاهرية من Azure قبل تعيينها يدويا إلى وضع التصريف. يمكنك تسمية العلامة باستخدام المعلمة MaintenanceTagName عند إنشاء Azure Logic App Scheduler لاحقا. ستساعدك العلامات على تمييز هذه الأجهزة الظاهرية عن تلك التي تديرها أداة القياس. يؤدي تعيين علامة الصيانة أيضا إلى منع أداة القياس من إجراء تغييرات على الجهاز الظاهري حتى تقوم بإزالة العلامة.
إذا قمت بتعيين المعلمة LimitSecondsToForceLogOffUser إلى صفر، فإن المهمة تسمح لإعداد تكوين جلسة العمل في نهج المجموعة المحددة بالتعامل مع تسجيل الخروج من جلسات عمل المستخدم. للاطلاع على نهج المجموعة هذه، انتقل إلى تكوين>الكمبيوترالسياساتالقوالب> الإدارية Windows المكوناتخدمات>>> سطح المكتب البعيدحدود وقت جلسة عمل سطح المكتب البعيد HostSession>. إذا كانت هناك أي جلسات عمل نشطة على جهاز ظاهري لمضيف جلسة عمل، فستترك المهمة مضيف الجلسة VM قيد التشغيل. إذا لم تكن هناك أي جلسات نشطة، فستقوم المهمة بإيقاف تشغيل الجهاز الظاهري لمضيف الجلسة.
خلال أي وقت، تأخذ المهمة أيضا MaxSessionLimit الخاص بتجمع المضيف في الاعتبار لتحديد ما إذا كان العدد الحالي للجلسات أكثر من 90٪ من السعة القصوى. إذا كان الأمر كذلك ، فستبدأ المهمة في استضافة الأجهزة الظاهرية الإضافية لجلسة العمل.
يتم تشغيل المهمة بشكل دوري استنادا إلى فاصل زمني محدد للتكرار. يمكنك تغيير هذا الفاصل الزمني استنادا إلى حجم بيئة سطح المكتب الظاهري في Azure، ولكن تذكر أن بدء تشغيل الأجهزة الظاهرية وإيقاف تشغيلها قد يستغرق بعض الوقت، لذا تذكر أن تأخذ في الاعتبار التأخير. نوصي بتعيين الفاصل الزمني للتكرار إلى كل 15 دقيقة.
ومع ذلك ، تحتوي الأداة أيضا على القيود التالية:
- ينطبق هذا الحل فقط على الأجهزة الظاهرية المضيفة لجلسة عمل متعددة الجلسات المجمعة.
- يدير هذا الحل الأجهزة الظاهرية في أي منطقة، ولكن لا يمكن استخدامه إلا في نفس الاشتراك مثل حساب Azure Automation وتطبيق Azure Logic App.
- الحد الأقصى لوقت تشغيل المهمة في دفتر التشغيل هو 3 ساعات. إذا استغرق بدء تشغيل الأجهزة الظاهرية أو إيقافها في تجمع المضيف وقتا أطول من ذلك ، فستفشل المهمة. لمزيد من التفاصيل، راجع الموارد المشتركة.
- يجب تشغيل جهاز ظاهري واحد على الأقل أو مضيف جلسة عمل واحد حتى تعمل خوارزمية القياس بشكل صحيح.
- لا تدعم أداة القياس القياس استنادا إلى وحدة المعالجة المركزية أو الذاكرة.
- يعمل القياس فقط مع المضيفين الموجودين في تجمع المضيفين. لا تدعم أداة القياس تغيير حجم مضيفي الجلسات الجدد.
ملاحظة
تتحكم أداة القياس في وضع موازنة الحمل للتجمع المضيف الذي تقوم بتحجيمه حاليا. تستخدم الأداة وضع موازنة التحميل الأول الواسع لكل من ساعات الذروة وخارج أوقات الذروة.
المتطلبات الأساسية
قبل البدء في إعداد أداة القياس، تأكد من أن لديك الأشياء التالية جاهزة:
- تجمع مضيف Azure Virtual Desktop
- الأجهزة الظاهرية لتجمع مضيف الجلسة التي تم تكوينها وتسجيلها باستخدام خدمة Azure Virtual Desktop
- مستخدم لديه حق وصول المساهم على اشتراك Azure
يجب أن يحتوي الجهاز الذي تستخدمه لنشر الأداة على:
- PowerShell 5.1 أو إصدار أحدث
- The Azure Az PowerShell module
إذا كان لديك كل شيء جاهز ، فلنبدأ.
إنشاء حساب Azure Automation أو تحديثه
ملاحظة
إذا كان لديك بالفعل حساب Azure Automation مع دفتر تشغيل يقوم بتشغيل إصدار أقدم من البرنامج النصي للقياس، فكل ما عليك فعله هو اتباع الإرشادات أدناه للتأكد من تحديثه.
أولا، ستحتاج إلى حساب أتمتة Azure لتشغيل دفتر تشغيل PowerShell. العملية التي يصفها هذا القسم صالحة حتى إذا كان لديك حساب أتمتة Azure موجود تريد استخدامه لإعداد دفتر تشغيل PowerShell. فيما يلي كيفية إعداده:
افتح PowerShell.
شغَّل الأمر cmdlet التالي لتسجيل الدخول إلى حساب Azure خاصتك.
Login-AzAccountملاحظة
يجب أن يكون لحسابك حقوق المساهم في اشتراك Azure حيث تريد توزيع أداة التحجيم.
شغَّل الأمر cmdlet التالي لتحميل البرنامج النصي لإنشاء حساب Azure Automation:
New-Item -ItemType Directory -Path "C:\Temp" -Force Set-Location -Path "C:\Temp" $Uri = "https://raw.githubusercontent.com/Azure/RDS-Templates/master/wvd-templates/wvd-scaling-script/CreateOrUpdateAzAutoAccount.ps1" # Download the script Invoke-WebRequest -Uri $Uri -OutFile ".\CreateOrUpdateAzAutoAccount.ps1"شغَّل الأمر cmdlet التالي لتنفيذ البرنامج النصي وإنشاء حساب Azure Automation. يمكنك إما تعبئة قيم المعلمات أو التعليق عليها لاستخدام إعداداتها الافتراضية.
$Params = @{ "AADTenantId" = "<Azure_Active_Directory_tenant_ID>" # Optional. If not specified, it will use the current Azure context "SubscriptionId" = "<Azure_subscription_ID>" # Optional. If not specified, it will use the current Azure context "UseARMAPI" = $true "ResourceGroupName" = "<Resource_group_name>" # Optional. Default: "WVDAutoScaleResourceGroup" "AutomationAccountName" = "<Automation_account_name>" # Optional. Default: "WVDAutoScaleAutomationAccount" "Location" = "<Azure_region_for_deployment>" "WorkspaceName" = "<Log_analytics_workspace_name>" # Optional. If specified, Log Analytics will be used to configure the custom log table that the runbook PowerShell script can send logs to } .\CreateOrUpdateAzAutoAccount.ps1 @Paramsملاحظة
إذا كان نهجك لا يسمح لك بإنشاء موارد برنامج نصي لتغيير الحجم في منطقة معينة، فقم بتحديث تعيين النهج وأضف المنطقة التي تريدها إلى قائمة المناطق المسموح بها.
إذا لم تكن قد أنشأت حساب أتمتة من قبل، فسيتضمن إخراج cmdlet عنوان URI مشفرا لخطاف الويب في متغير حساب التشغيل التلقائي. تأكد من الاحتفاظ بسجل لمعرف URI لأنك ستستخدمه بوصفه معلمة عندما تعد جدول التنفيذ الخاص بـ Azure Logic App. إذا كنت تقوم بتحديث حساب أتمتة موجود، فيمكنك استرداد عنوان URI الخاص ب webhook باستخدام PowerShell للوصول إلى المتغيرات.
إذا حددت المعلمة WorkspaceName لـ Log Analytics، سيتضمن الإخراج cmdlet أيضاً معرف مساحة عمل Log Analytics ومفتاحه الأساسي. تأكد من تذكر معرف URI لأنك ستحتاج إلى استخدامه مرةً أخرى بوصفه معلمة عندما تعد جدول التنفيذ الخاص بـ Azure Logic App.
بعد إعداد حساب Azure Automation، سجل الدخول إلى اشتراك Azure وتحقق للتأكد من ظهور حساب Azure Automation ودفتر التشغيل ذي الصلة في مجموعة الموارد المحددة، كما هو موضح في الصورة التالية:

للتحقق مما إذا كان خطاف الويب خاصتك في المكان الذي يجب أن يكون فيه، حدد اسم دفتر التشغيل خاصتك. بعد ذلك ، انتقل إلى قسم الموارد في دفتر التشغيل الخاص بك وحدد Webhooks.
إنشاء حساب Azure Automation Run As
الآن بعد أن أصبح لديك حساب Azure Automat، ستحتاج أيضا إلى إنشاء حساب Azure Automation Run As إذا لم يكن لديك حساب بالفعل. سيسمح هذا الحساب للأداة بالوصول إلى موارد Azure الخاصة بك.
يوفر حساب Azure Automation Run As مصادقة لإدارة الموارد في Azure باستخدام Azure cmdlets. عند إنشاء حساب "Run As"، فإنه ينشئ مستخدماً رئيسياً جديداً للخدمة في Azure Active Directory ويعين دور المساهم للمستخدم الرئيسي للخدمة على مستوى الاشتراك. حساب Azure Run As طريقة رائعة للمصادقة بأمان مع الشهادات واسم الخدمة الأساسي دون الحاجة إلى تخزين اسم مستخدم وكلمة مرور في عنصر بيانات الاعتماد. لمعرفة المزيد حول مصادقة الحساب "تشغيل باسم"، راجع الحد من أذونات "التشغيل كحساب".
يمكن لأي مستخدم عضو في دور "مسؤولي الاشتراك" و "مساعد مسؤول الاشتراك" إنشاء حساب Run As.
لإنشاء حساب "Run As" في حساب Azure Automation خاصتك:
في مدخل Azure، حدد جميع الخدمات. في قائمة الموارد، أدخِل Automation accounts.
في صفحة Automation accounts حدد اسم حساب Azure Automation الخاص بك.
في الجزء الموجود على الجانب الأيسر من النافذة، حدد Run As accounts ضمن القسم Account Settings.
حدد Azure Run As account. عند ظهور الجزء Add Azure Run As account راجع معلومات النظرة العامة، ثم حدد Create لبدء عملية إنشاء الحساب.
انتظر بضع دقائق حتى ينشئ Azure حساب Run As. يمكنك تعقب تقدم الإنشاء في القائمة ضمن Notifications.
عند انتهاء العملية، ستقوم بإنشاء أصل باسم AzureRunAsConnection في حساب أتمتة Azure المحدد. حدد Azure Run As account. يحتوي أصل الاتصال على معرف التطبيق ومعرف المستأجر ومعرف الاشتراك وبصمة الشهادة. يمكنك أيضا العثور على نفس المعلومات في صفحة الاتصالات . للانتقال إلى هذه الصفحة، في الجزء الموجود على الجانب الأيمن من النافذة، حدد الاتصالات ضمن قسم الموارد المشتركة وحدد أصل الاتصال المسمى AzureRunAsConnection.
إنشاء Azure Logic App وجدول التنفيذ
أخيراً، ستحتاج إلى إنشاء Azure Logic App وإعداد جدول تنفيذ لأداة التحجيم الجديدة. أولا، قم بتنزيل وحدة PowerShell الافتراضية لسطح المكتب واستيرادها لاستخدامها في جلسة عمل PowerShell إذا لم تكن قد قمت بذلك بالفعل.
افتح PowerShell.
شغَّل الأمر cmdlet التالي لتسجيل الدخول إلى حساب Azure خاصتك.
Login-AzAccountتشغيل الأمر cmdlet التالي لتحميل البرنامج النصي لإنشاء Azure Logic App.
New-Item -ItemType Directory -Path "C:\Temp" -Force Set-Location -Path "C:\Temp" $Uri = "https://raw.githubusercontent.com/Azure/RDS-Templates/master/wvd-templates/wvd-scaling-script/CreateOrUpdateAzLogicApp.ps1" # Download the script Invoke-WebRequest -Uri $Uri -OutFile ".\CreateOrUpdateAzLogicApp.ps1"قم بتشغيل البرنامج النصي PowerShell التالي لإنشاء تطبيق Azure Logic وجدول التنفيذ لتجمع المضيف الخاص بك
ملاحظة
ستحتاج إلى تشغيل هذا البرنامج النصي لكل تجمع مضيف تريد تحجيمه تلقائياً، ولكنك تحتاج إلى حساب Azure Automation واحد فقط.
$AADTenantId = (Get-AzContext).Tenant.Id $AzSubscription = Get-AzSubscription | Out-GridView -OutputMode:Single -Title "Select your Azure Subscription" Select-AzSubscription -Subscription $AzSubscription.Id $ResourceGroup = Get-AzResourceGroup | Out-GridView -OutputMode:Single -Title "Select the resource group for the new Azure Logic App" $WVDHostPool = Get-AzResource -ResourceType "Microsoft.DesktopVirtualization/hostpools" | Out-GridView -OutputMode:Single -Title "Select the host pool you'd like to scale" $LogAnalyticsWorkspaceId = Read-Host -Prompt "If you want to use Log Analytics, enter the Log Analytics Workspace ID returned by when you created the Azure Automation account, otherwise leave it blank" $LogAnalyticsPrimaryKey = Read-Host -Prompt "If you want to use Log Analytics, enter the Log Analytics Primary Key returned by when you created the Azure Automation account, otherwise leave it blank" $RecurrenceInterval = Read-Host -Prompt "Enter how often you'd like the job to run in minutes, e.g. '15'" $BeginPeakTime = Read-Host -Prompt "Enter the start time for peak hours in local time, e.g. 9:00" $EndPeakTime = Read-Host -Prompt "Enter the end time for peak hours in local time, e.g. 18:00" $TimeDifference = Read-Host -Prompt "Enter the time difference between local time and UTC in hours, e.g. +5:30" $SessionThresholdPerCPU = Read-Host -Prompt "Enter the maximum number of sessions per CPU that will be used as a threshold to determine when new session host VMs need to be started during peak hours" $MinimumNumberOfRDSH = Read-Host -Prompt "Enter the minimum number of session host VMs to keep running during off-peak hours" $MaintenanceTagName = Read-Host -Prompt "Enter the name of the Tag associated with VMs you don't want to be managed by this scaling tool" $LimitSecondsToForceLogOffUser = Read-Host -Prompt "Enter the number of seconds to wait before automatically signing out users. If set to 0, any session host VM that has user sessions, will be left untouched" $LogOffMessageTitle = Read-Host -Prompt "Enter the title of the message sent to the user before they are forced to sign out" $LogOffMessageBody = Read-Host -Prompt "Enter the body of the message sent to the user before they are forced to sign out" $AutoAccount = Get-AzAutomationAccount | Out-GridView -OutputMode:Single -Title "Select the Azure Automation account" $AutoAccountConnection = Get-AzAutomationConnection -ResourceGroupName $AutoAccount.ResourceGroupName -AutomationAccountName $AutoAccount.AutomationAccountName | Out-GridView -OutputMode:Single -Title "Select the Azure RunAs connection asset" $WebhookURI = Read-Host -Prompt "Enter the webhook URI that has already been generated for this Azure Automation account. The URI is stored as encrypted in the above Automation Account variable. To retrieve the value, see https://docs.microsoft.com/azure/automation/shared-resources/variables?tabs=azure-powershell#powershell-cmdlets-to-access-variables" $Params = @{ "AADTenantId" = $AADTenantId # Optional. If not specified, it will use the current Azure context "SubscriptionID" = $AzSubscription.Id # Optional. If not specified, it will use the current Azure context "ResourceGroupName" = $ResourceGroup.ResourceGroupName # Optional. Default: "WVDAutoScaleResourceGroup" "Location" = $ResourceGroup.Location # Optional. Default: "West US2" "UseARMAPI" = $true "HostPoolName" = $WVDHostPool.Name "HostPoolResourceGroupName" = $WVDHostPool.ResourceGroupName # Optional. Default: same as ResourceGroupName param value "LogAnalyticsWorkspaceId" = $LogAnalyticsWorkspaceId # Optional. If not specified, script will not log to the Log Analytics "LogAnalyticsPrimaryKey" = $LogAnalyticsPrimaryKey # Optional. If not specified, script will not log to the Log Analytics "ConnectionAssetName" = $AutoAccountConnection.Name # Optional. Default: "AzureRunAsConnection" "RecurrenceInterval" = $RecurrenceInterval # Optional. Default: 15 "BeginPeakTime" = $BeginPeakTime # Optional. Default: "09:00" "EndPeakTime" = $EndPeakTime # Optional. Default: "17:00" "TimeDifference" = $TimeDifference # Optional. Default: "-7:00" "SessionThresholdPerCPU" = $SessionThresholdPerCPU # Optional. Default: 1 "MinimumNumberOfRDSH" = $MinimumNumberOfRDSH # Optional. Default: 1 "MaintenanceTagName" = $MaintenanceTagName # Optional. "LimitSecondsToForceLogOffUser" = $LimitSecondsToForceLogOffUser # Optional. Default: 1 "LogOffMessageTitle" = $LogOffMessageTitle # Optional. Default: "Machine is about to shutdown." "LogOffMessageBody" = $LogOffMessageBody # Optional. Default: "Your session will be logged off. Please save and close everything." "WebhookURI" = $WebhookURI } .\CreateOrUpdateAzLogicApp.ps1 @Paramsبعد تشغيل البرنامج النصي، يجب أن يظهر Azure Logic App في إحدى مجموعات الموارد، كما هو موضح في الصورة التالية.

لإجراء تغييرات على جدول التنفيذ، مثل تغيير الفاصل الزمني للتكرار أو المنطقة الزمنية، انتقل إلى جدولة المقياس التلقائي لتطبيق Azure Logic وحدد تحرير للانتقال إلى مصمم تطبيقات Azure Logic App.

إدارة أداة القياس
الآن بعد أن قمت بإنشاء أداة التحجيم الخاصة بك ، يمكنك الوصول إلى مخرجاتها. يصف هذا القسم بعض الميزات التي قد تجدها مفيدة.
عرض حالة الوظيفة
يمكنك عرض حالة ملخصة لجميع مهام دفتر التشغيل أو عرض حالة أكثر تعمقا لمهمة دفتر تشغيل معينة في مدخل Azure.
على يسار حساب Azure Automation المحدد، ضمن "إحصاءات الوظائف"، يمكنك عرض قائمة بملخصات جميع وظائف دفتر التشغيل. يؤدي فتح صفحة الوظائف على الجانب الأيمن من النافذة إلى عرض حالات الوظائف الحالية وأوقات البدء وأوقات الانتهاء.

عرض السجلات وإخراج أداة التحجيم
يمكنك عرض سجلات عمليات التوسع والتوسع عن طريق فتح دفتر التشغيل وتحديد المهمة.
انتقل إلى دفتر التشغيل في مجموعة الموارد التي تستضيف حساب أتمتة Azure وحدد نظرة عامة. في صفحة النظرة العامة، حدد وظيفة ضمن الوظائف الأخيرة لعرض مخرجات أداة القياس الخاصة بها، كما هو موضح في الصورة التالية.

التحقق من رقم إصدار البرنامج النصي لدفتر التشغيل
يمكنك التحقق من إصدار البرنامج النصي لدفتر التشغيل الذي تستخدمه عن طريق فتح ملف دفتر التشغيل في حساب التشغيل التلقائي ل Azure وتحديد عرض. سيظهر برنامج نصي لدفتر التشغيل على الجانب الأيمن من الشاشة. في البرنامج النصي، سترى رقم الإصدار بالتنسيق v#.#.# أسفل SYNOPSIS القسم. يمكنك العثور على أحدث رقم إصدار هنا. إذا كنت لا ترى رقم إصدار في البرنامج النصي لدفتر التشغيل الخاص بك ، فهذا يعني أنك تقوم بتشغيل إصدار سابق من البرنامج النصي ويجب عليك تحديثه على الفور. إذا كنت بحاجة إلى تحديث البرنامج النصي لدفتر التشغيل، فاتبع الإرشادات الواردة في إنشاء حساب أتمتة Azure أو تحديثه.
قضايا الإبلاغ
عند الإبلاغ عن مشكلة، ستحتاج إلى تقديم المعلومات التالية لمساعدتنا في استكشاف الأخطاء وإصلاحها:
سجل كامل من علامة التبويب كافة السجلات في المهمة التي تسببت في المشكلة. لمعرفة كيفية الحصول على السجل، اتبع الإرشادات الواردة في عرض السجلات وإخراج أداة القياس. إذا كانت هناك أي معلومات حساسة أو خاصة في السجل، يمكنك إزالتها قبل إرسال المشكلة إلينا.
إصدار البرنامج النصي لدفتر التشغيل الذي تستخدمه. لمعرفة كيفية الحصول على رقم الإصدار، راجع التحقق من رقم إصدار البرنامج النصي لدفتر التشغيل
رقم إصدار كل وحدة من وحدات PowerShell التالية المثبتة في حساب Azure Automation الخاص بك. للعثور على هذه الوحدات النمطية، افتح حساب Azure Automat، وحدد الوحدات النمطية ضمن قسم الموارد المشتركة في الجزء الموجود على الجانب الأيمن من النافذة، ثم ابحث عن اسم الوحدة النمطية.
- الحسابات
- Az.Compute
- أ. الموارد
- Az.Automation
- OMSIngestionAPI
- Az.DesktopVirtualization
تاريخ انتهاء صلاحية حساب "التشغيل باسم". للعثور على ذلك، افتح حساب التشغيل التلقائي ل Azure، ثم حدد تشغيل كحسابات ضمن الحساب الإعدادات في الجزء الموجود على الجانب الأيمن من النافذة. يجب أن يكون تاريخ انتهاء الصلاحية ضمن حساب Azure Run As .
Log Analytics
إذا قررت استخدام Log Analytics، فيمكنك عرض جميع بيانات السجل في سجل مخصص باسم WVDTenantScale_CL ضمن السجلات المخصصة في طريقة عرض السجلات في مساحة عمل Log Analytics. لقد أدرجنا بعض نماذج الاستعلامات التي قد تجدها مفيدة.
للاطلاع على كافة السجلات الخاصة بتجمع مضيف، أدخل الاستعلام التالي:
WVDTenantScale_CL | where hostpoolName_s == "<host_pool_name>" | project TimeStampUTC = TimeGenerated, TimeStampLocal = TimeStamp_s, HostPool = hostpoolName_s, LineNumAndMessage = logmessage_s, AADTenantId = TenantIdلعرض العدد الإجمالي للأجهزة الظاهرية لمضيف جلسة العمل قيد التشغيل حاليا وجلسات عمل المستخدمين النشطين في تجمع المضيفين، أدخل الاستعلام التالي:
WVDTenantScale_CL | where logmessage_s contains "Number of running session hosts:" or logmessage_s contains "Number of user sessions:" or logmessage_s contains "Number of user sessions per Core:" | where hostpoolName_s == "<host_pool_name>" | project TimeStampUTC = TimeGenerated, TimeStampLocal = TimeStamp_s, HostPool = hostpoolName_s, LineNumAndMessage = logmessage_s, AADTenantId = TenantIdلعرض حالة كافة الأجهزة الظاهرية لمضيف الجلسة في تجمع مضيف، أدخل الاستعلام التالي:
WVDTenantScale_CL | where logmessage_s contains "Session host:" | where hostpoolName_s == "<host_pool_name>" | project TimeStampUTC = TimeGenerated, TimeStampLocal = TimeStamp_s, HostPool = hostpoolName_s, LineNumAndMessage = logmessage_s, AADTenantId = TenantIdلعرض أي أخطاء وتحذيرات، أدخل الاستعلام التالي:
WVDTenantScale_CL | where logmessage_s contains "ERROR:" or logmessage_s contains "WARN:" | project TimeStampUTC = TimeGenerated, TimeStampLocal = TimeStamp_s, HostPool = hostpoolName_s, LineNumAndMessage = logmessage_s, AADTenantId = TenantId
الإبلاغ عن المشكلات
تتم حاليا معالجة تقارير المشكلات الخاصة بأداة القياس بواسطة دعم Microsoft. عند إعداد تقرير عن مشكلة، تأكد من اتباع الإرشادات الواردة في الإبلاغ عن المشكلات. إذا كانت لديك ملاحظات حول الأداة أو كنت ترغب في طلب ميزات جديدة، فافتح مشكلة GitHub تسمى أداة قياس 4-WVD-scaling-tool في صفحة RDS GitHub.