Comment résoudre le problème des lecteurs réseau mappés manquants dans les programmes avec privilèges élevés

Vous rencontrez des difficultés pour accéder aux lecteurs réseau mappés dans des applications exécutées en tant qu’administrateur ? C’est assez pénible, car Windows gère le Contrôle de compte d’utilisateur (UAC) et la séparation des privilèges. Concrètement, lorsque vous mappez un lecteur réseau dans votre session utilisateur, Windows crée des liens symboliques (DosDevices) pointant vers des chemins UNC, mais ces liens sont liés à votre jeton d’accès actuel. Lorsque vous exécutez une application « en tant qu’administrateur », c’est comme si elle fonctionnait sur un autre système : elle ne voit pas ces liens ni les lecteurs mappés, car elle s’exécute avec un jeton différent et des privilèges élevés. Par conséquent, les lecteurs qui s’affichent correctement dans l’Explorateur de fichiers ou l’invite de commandes ne sont pas visibles dans les applications exécutées avec des privilèges élevés, ce qui est extrêmement frustrant si vous essayez d’effectuer des opérations d’administration sur les partages réseau.

Cela est particulièrement vrai si les lecteurs sont mappés via la stratégie de groupe ou manuellement net use. Le problème vient du fait que le Contrôle de compte d’utilisateur (UAC) crée des jetons de privilège distincts, qui ne partagent pas ces liens symboliques entre les sessions. Je ne comprends pas pourquoi Windows complique autant les choses, mais il est vrai qu’il a parfois tendance à rendre les choses plus difficiles qu’il n’en faut.

Comment résoudre le problème d’affichage des lecteurs réseau mappés dans les applications exécutées avec les droits d’administrateur ?

Méthode 1 : Activer les connexions liées via une modification du registre

Cette méthode est probablement la solution la plus simple et fonctionne sous Windows Vista, 7, 8, 10 et même les versions plus récentes de Windows Server. Elle consiste à activer la clé EnableLinkedConnections dans le registre afin que Windows synchronise les mappages de lecteurs entre les différents niveaux de privilèges.

  • Ouvrez regedit.exe depuis le menu Démarrer ou la boîte de dialogue Exécuter.
  • Accédez à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System. Si vous ne voyez pas EnableLinkedConnections, créez une nouvelle valeur DWORD (32 bits).
  • Nommez-le EnableLinkedConnections et définissez sa valeur sur 1.
  • Vous pouvez également exécuter cette commande dans PowerShell ou l’invite de commandes avec des droits d’administrateur : reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLinkedConnections" /t REG_DWORD /d 1 /f

Important : Après modification, redémarrez votre PC ou le service LanmanWorkstationget-service LanmanWorkstation | Restart-Service –Force (à exécuter dans PowerShell).Dans certains cas, un redémarrage est la méthode la plus simple pour que la modification du registre soit prise en compte.

Cette astuce permet à Windows de synchroniser les lecteurs réseau entre les différents jetons de sécurité, les rendant ainsi visibles que l’application s’exécute avec des privilèges élevés ou non. D’après mon expérience, cette méthode est étonnamment efficace, même s’il est déconseillé de désactiver complètement le Contrôle de compte d’utilisateur (UAC), mais seulement ce paramètre.

Méthode 2 : Exécuter l’Explorateur de fichiers Windows en mode administrateur (si nécessaire)

Une autre solution de contournement un peu bricolée ? Vous pouvez lancer l’Explorateur de fichiers avec privilèges d’administrateur, puis accéder à vos disques. Ce n’est pas idéal, mais si vous avez besoin d’un accès rapide, ça fonctionne. Utilisez un raccourci ou une tâche pour exécuter explorer.exe en tant qu’administrateur avec la commande : runas /user:Administrator explorer.exe

Remarque : Sur certaines configurations, cela peut entraîner des comportements inattendus ou nécessiter la saisie d’identifiants. Enfin, n’oubliez pas que, si l’objectif est de rendre les lecteurs accessibles à tous, la modification du registre est la solution la plus simple.

Autres astuces et conseils

  • Pour les lecteurs réseau mappés configurés via des scripts ou une stratégie de groupe, envisagez de déployer le paramètre de registre EnableLinkedConnections sur toutes les machines à l’aide des préférences de stratégie de groupe ou d’un script de démarrage.
  • Vous pouvez également créer un lien symbolique dans votre répertoire utilisateur pointant vers le partage réseau : mklink /D C:\localfolder \\server\shared. Mais n’oubliez pas qu’il s’agit d’un lien fantôme ; il est lié à votre compte utilisateur connecté et ne remplace pas un véritable mappage de lecteur réseau.

En résumé, le principal avantage réside dans l’activation de EnableLinkedConnections. C’est un peu fastidieux car Windows ne le fait pas automatiquement, mais une fois configuré, les lecteurs réseau se comportent de manière cohérente, que les applications soient exécutées en mode administrateur ou normal.

Remarque : Il n’existe aucun paramètre GPO permettant d’activer ou de désactiver directement EnableLinkedConnections ; par conséquent, son déploiement à grande échelle nécessite de modifier le registre via votre outil de gestion préféré.

Résumé

  • Case à cocher pour la modification du registre —reg add.../v EnableLinkedConnections /t REG_DWORD /d 1 /f
  • Redémarrez le réseau pour que les modifications soient prises en compte.
  • Vérifiez ensuite si les lecteurs sont visibles dans les applications avec privilèges élevés.

Conclure

J’espère que cette solution permettra à certains d’éviter la frustration de ne pas trouver les lecteurs réseau dans les applications d’administration. C’est un problème récurrent, mais honnêtement, activer EnableLinkedConnections est la solution la plus simple. Sur une configuration, un simple redémarrage a suffi ; sur une autre, un redémarrage rapide du service a résolu le problème. Dans tous les cas, je suis content qu’il soit possible de le corriger plutôt que de subir ce désagrément.