2 votes

"Ouvrir une fenêtre PowerShell ici" La commande du menu contextuel de l'Explorateur de fichiers ne fonctionne pas avec les noms de dossiers contenant des apostrophes (guillemets simples)

Dans Windows 10, en appuyant sur Shift-droit sur un dossier ou dans l'arrière-plan de l'Explorateur de fichiers, une commande "Ouvrir une fenêtre PowerShell ici" est ajoutée au menu contextuel.

Cependant, la commande utilisée pour ouvrir la fenêtre PowerShell est mal définie (au moins à partir de la version W10 1709) car elle suppose à tort que les noms de dossiers ne contiennent jamais de caractères ' imbriqués :

# !! Ne fonctionne pas avec des noms de dossiers tels que "a'b"
powershell.exe -noexit -command Set-Location -literalPath '%V' 

Voir ci-dessous pour une solution, mais notez qu'elle nécessite des privilèges administratifs.

2voto

mklement0 Points 1744

Note:

  • Cette correction nécessite des privilèges administratifs.
  • ATTENTION : En raison de l'utilisation de "...", PowerShell évalue le chemin spécifié comme il évaluerait un argument interne à PowerShell, la commande peut donc échouer avec des noms de dossiers tels que $foo - ou, pire, entraîner l'exécution de commandes à travers des noms de dossiers soigneusement - et malicieusement - conçus.

Ouvrez regedit.exe et appliquez les étapes suivantes à ces deux clés de registre suivantes : HKEY_CLASSES_ROOT\Directory\shell\Powershell\command et
HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell\command :

  • Préparation : modifiez les autorisations afin que la modification de la valeur (la commande PowerShell) soit possible :

    • Clic-droit sur la sous-clé command et sélectionnez Autorisations...

    • Cliquez sur Avancé et :

      • faites du groupe Administrateurs le propriétaire de la clé
      • donnez au groupe Administrateurs le contrôle total de la clé
    • Note : Je ne suis pas au courant d'effets indésirables de ces modifications, mais dites-nous si vous en connaissez.
      Cependant, par mesure de sécurité, vous pouvez revenir sur ces modifications après avoir modifié la commande comme décrit ci-dessous, ce qui implique de restaurer le principal de sécurité TrustedInstaller comme propriétaire de la clé command ; notez que vous devez le spécifier comme
      NT SERVICE\TrustedInstaller.

  • Remplacez maintenant la valeur (Default) de la clé command par la commande suivante :
    powershell.exe -noexit -command Set-Location -literalPath \"%V\"

Il devrait être possible d'automatiser les étapes ci-dessus.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X