Меню «Пуск» не працює (не відповідає) на Windows Server RDS

Час від часу користувачі повідомляють про проблеми з меню «Пуск» або панеллю завдань на хостах RDS під керуванням Windows Server 2022 або 2019. Коли користувач натискає кнопку «Пуск» під час сеансу терміналу, або меню не відкривається, або сеанс RDP зависає та перестає відповідати.

Інтерфейсом меню «Пуск» і взаємодією користувача керують два процеси:Explorer.exeіStartMenuExperienceHost.exe. Перезапуск із диспетчера завдань може швидко вирішити одноразову проблему.

Частіше проблема, коли кнопка меню «Пуск» не працює на хостах у фермі RDS, виникає постійно. Зазвичай це супроводжується кількома помилками сервера DCOM із ідентифікатором події10001у Перегляді подій -> Системний журнал, вказуючи на програми Microsoft Store.

Одним із можливих рішень проблеми, коли меню «Пуск» не працює під час сеансу користувача, є повторна реєстрація проблемного пакета програм Microsoft Store. Оскільки кнопка «Пуск» не працює, відкрийте консоль PowerShell за допомогоюWin+Xкомбінація клавіш. Виконайте команду:

Add-AppxPackage -Register "C:WindowsSystemAppsShellExperienceHost_cw5n1h2txyewyAppxManifest.xml" -DisableDevelopmentMode

Або повторно зареєструйте всі програми Microsoft Store одночасно:

Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)AppXManifest.xml"}

Якщо це не вирішує проблему або вирішує її лише тимчасово, перевірте вміст таких розділів реєстру:

  • HKLMSYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyRestrictedServicesAppIsoFirewallRules
  • HKLMSYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyFirewallRules

У моєму випадку я це виявивтисячі правил брандмауера Windows Defenderстворювалися для програм Microsoft Store (APPX/MSIX) щоразу, коли користувач входив і виходив із системи, і ці правила не скидалися автоматично.

Ця проблема часто виникає під час використання дисків профілів користувачів (UPD) у RDS.

Щоразу, коли користувач запускає програму Microsoft Store, нові правила брандмауера Windows Defender автоматично додаються, але старі правила не видаляються. Велика кількість правил брандмауера може спричинитиStartMenuExperienceHostпроцес заморожування. Цей процес відповідає за відображення меню «Пуск» у сеансі користувача. Щоб відновити функціональність меню «Пуск» на хості Windows Server, зніміть ці правила брандмауера Windows Defender.

Велика кількість повторюваних правил у брандмауері Windows може значно погіршити продуктивність RDS і сеансів RemoteApp на Windows Server.

По-перше, створимо резервну копію розділу реєстру, який містить правила брандмауера. Це дозволить повернутися до нього в разі виникнення проблем.

reg export "HKLMSYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicy" C:Backup_Firewall_Policy_rules.reg

Командлети PowerShell не можна використовувати для керування правилами брандмауера вAppIsoрозділ реєстру, оскільки команда Get-NetFirewallRule їх не бачить. Тому вам потрібно буде видалити їх безпосередньо з реєстру.

Щоб очистити правила брандмауера програм MS Store у реєстрі, виконайте такі команди:

reg delete HKLMSYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyRestrictedServicesConfigurableSystem /va /f

reg delete HKLMSYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyRestrictedServicesAppIsoFirewallRules /va /f

Це очистить спеціальні правила брандмауера.

Також перевірте кількість правил у розділі реєструHKLMSYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicyFirewallRules. Також може бути велика кількість повторюваних правил брандмауера, пов’язаних із програмами Microsoft Store. Не видаляйте всі елементи з цього розділу реєстру, оскільки це призведе до видалення всіх правил брандмауера Windows, включаючи стандартні. Інакше ви можете втратити віддалений доступ до хосту Windows, включаючи доступ до його віддаленого робочого столу.

Докладніше:Очистіть кеш і тимчасові файли в профілях користувачів у Windows (RDS) за допомогою PowerShell і GPO

Тому, перш ніж очистити ці правила, створіть GPO з необхідними правилами брандмауера Windows і застосуйте його до хоста, щоб уникнути втрати доступу

Використовуйте таку команду, щоб відновити параметри та правила брандмауера Windows за замовчуванням:

(New-Object -ComObject HNetCfg.FwPolicy2).RestoreLocalFirewallDefaults()

Щоб Windows автоматично очищала правила брандмауера, створені програмами Microsoft Store під час кожного сеансу користувача, створітьDeleteUserAppContainersOnLogoffпараметр реєстру на сервері RDS і встановіть для нього значення 1. Щоб створити елемент реєстру за допомогою PowerShell, виконайте:

New-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicy" -Type DWord -Name DeleteUserAppContainersOnLogoff -Value 1

Тепер, коли сеанс користувача завершується, правила брандмауера програми, створені для цього користувача, автоматично очищаються.

Залишається лише перереєструвати пакети APPX на сервері:

Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “$($_.InstallLocation)AppXManifest.xml”}

Related Posts