Le menu Démarrer ne fonctionne pas (ne répond pas) sur Windows Server RDS

/fr/images/word-image-4.png

Parfois, les utilisateurs signalent des problèmes avec le menu Démarrer ou la barre des tâches sur les hôtes RDS exécutant Windows Server 2022 ou 2019. Lorsqu’un utilisateur clique sur le bouton Démarrer dans une session de terminal, soit le menu ne s’ouvre pas, soit la session RDP se bloque et ne répond plus.

L’interface du menu Démarrer et les interactions utilisateur sont gérées par deux processus : Explorer.exe et StartMenuExperienceHost.exe. Les redémarrer à partir du Gestionnaire des tâches peut résoudre rapidement un problème ponctuel.

/fr/images/word-image-1.png.webp

Le plus souvent, le problème du bouton du menu Démarrer qui ne fonctionne pas sur les hôtes d’une batterie de serveurs RDS se produit systématiquement. Ceci est généralement accompagné de plusieurs erreurs du serveur DCOM avec l’ID d’événement 10001 dans l’Observateur d’événements -> Journal système, pointant vers les applications du Microsoft Store.

/fr/images/word-image-2.png.webp

Une solution possible au problème du menu Démarrer qui ne fonctionne pas dans la session utilisateur consiste à réenregistrer le package d’application problématique du Microsoft Store. Étant donné que le bouton Démarrer ne fonctionne pas, ouvrez la console PowerShell à l’aide du raccourci clavier « Win+X ». Exécutez la commande :

Add-AppxPackage-Register "C:\Windows\SystemApps\ShellExperienceHost\_cw5n1h2txyewy\AppxManifest.xml" -DisableDevelopmentMode

Ou réenregistrez toutes les applications du Microsoft Store en même temps :

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

/fr/images/word-image-3.png.webp

Si cela ne résout pas le problème, ou ne le résout que temporairement, vérifiez le contenu des clés de registre suivantes :

  • HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\AppIso\FirewallRules

  • HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules

Dans mon cas, j’ai constaté que des milliers de règles de pare-feu Windows Defender étaient créées pour les applications du Microsoft Store (APPX/MSIX) à chaque fois qu’un utilisateur se connectait et se déconnectait, et ces règles n’étaient pas automatiquement effacées.

/fr/images/word-image-4.png.webp

Chaque fois qu’un utilisateur lance une application Microsoft Store, de nouvelles règles de pare-feu Windows Defender sont automatiquement ajoutées, mais les anciennes règles ne sont pas supprimées. Un grand nombre de règles de pare-feu peuvent provoquer le blocage du processus StartMenuExperienceHost. Ce processus est responsable de l’affichage du menu Démarrer dans la session utilisateur. Pour restaurer la fonctionnalité du menu Démarrer sur l’hôte Windows Server, effacez ces règles du pare-feu Windows Defender.

Un grand nombre de règles en double dans le pare-feu Windows peuvent dégrader considérablement les performances des sessions RDS et RemoteApp sur Windows Server.

Tout d’abord, sauvegardons la clé de registre qui contient les règles de pare-feu. Cela nous permettra d’y revenir en cas de problème.

reg export "HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy"C:\Backup\_Firewall\_Policy\_rules.reg

/fr/images/word-image-5.png.webp

Clé de registre AppIso car le

Les applets de commande PowerShell ne peuvent pas être utilisées pour gérer les règles de pare-feu dans la clé de registre, car la commande Get-NetFirewallRule ne les voit pas. Par conséquent, vous devrez les supprimer directement du registre.

Pour nettoyer les règles de pare-feu des applications MS Store dans le registre, exécutez ces commandes :

reg delete HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System/va/f

reg delete HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\AppIso\FirewallRules/va/f

Cela effacera les règles de pare-feu personnalisées.

/fr/images/word-image-6.png.webp

HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules. Il peut également y avoir un grand nombre de règles de pare-feu en double liées aux applications du Microsoft Store. Ne supprimez pas tous les éléments de cette clé de registre, car cela supprimerait toutes les règles du pare-feu Windows, y compris celles par défaut. Sinon, vous risquez de perdre l’accès à distance à l’hôte Windows, y compris l’accès à son bureau à distance.

Vérifiez également le nombre de règles sous la clé de registre. Il peut également y avoir un grand nombre de règles de pare-feu en double liées aux applications du Microsoft Store. Ne supprimez pas tous les éléments de cette clé de registre, car cela supprimerait toutes les règles du pare-feu Windows, y compris celles par défaut. Sinon, vous risquez de perdre l’accès à distance à l’hôte Windows, y compris l’accès à son bureau à distance.

Par conséquent, avant d’effacer ces règles, créez un GPO avec les règles de pare-feu Windows nécessaires et appliquez-le à l’hôte pour éviter de perdre l’accès.

Utilisez la commande suivante pour restaurer les paramètres et les règles par défaut du pare-feu Windows :

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

Pour que Windows efface automatiquement les règles de pare-feu créées par les applications du Microsoft Store à chaque session utilisateur, créez le paramètre de registre DeleteUserAppContainersOnLogoff sur le serveur RDS et définissez sa valeur sur 1. Pour créer un élément de registre à l’aide de PowerShell, exécutez :

New-ItemProperty-Path "HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy" -Type DWord-Name DeleteUserAppContainersOnLogoff-Value 1

Désormais, lorsque la session d’un utilisateur se termine, les règles de pare-feu de l’application créées pour cet utilisateur seront automatiquement effacées.

Il ne reste plus qu’à réenregistrer les packages APPX sur un serveur :

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

*️⃣ Lien source :

Les applications du Microsoft Store (APPX/MSIX), dégradent considérablement les performances des sessions RDS et RemoteApp, sauvegardent la clé de registre, Get-NetFirewallRule, créent un GPO avec les règles de pare-feu Windows nécessaires, créent un élément de registre à l’aide de PowerShell,