"Apri la finestra di PowerShell qui" Il comando del menu di scelta rapida di Esplora file si interrompe con i nomi delle cartelle con apostrofi (virgolette singole)


2

In Windows 10, tenendo premuto Maiusc e facendo clic con il tasto destro del mouse su una cartella o in background in Esplora file, si aggiunge un comando "Finestra OpenPowerShell qui" al menu di scelta rapida.

Tuttavia, il comando utilizzato per aprire la finestra di PowerShell è definito in modo errato (almeno con l'ID di rilascio W10 1709) in quanto presuppone erroneamente che i nomi delle cartelle non contengano mai 'caratteri incorporati :

# !! Breaks with folder names such as "a'b"
powershell.exe -noexit -command Set-Location -literalPath '%V' 

Vedi sotto per una correzione, ma tieni presente che richiede privilegi di amministratore.

Risposte:


2

Nota:

  • Questa correzione richiede privilegi di amministratore .
  • CAVEAT : Perché, a causa dell'uso di "...", PowerShell valuta il percorso specificato in quanto valuterebbe un argomento PowerShell internamente, il comando può rompersi con nomi di cartelle come $foo- o, peggio, comportare l' esecuzione di comandi con attenzione - e maliziosamente - nomi delle cartelle creati.

Aprire regedit.exee applicare i seguenti passaggi a entrambe le seguenti chiavi di registro : HKEY_CLASSES_ROOT\Directory\shell\Powershell\commande
HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell\command:

  • Preparazione: modificare le autorizzazioni in modo che sia possibile modificare il valore (il comando PowerShell):

    • Fare clic con il tasto destro sulla commandsottochiave e selezionarePermissions...

    • Clicca Advancede:

      • rendere il Administratorsgruppo il proprietario della chiave
      • dare al Administratorsgruppo il pieno controllo della chiave
    • Nota: non sono a conoscenza di alcun effetto negativo di queste modifiche, ma informaci se ne conosci alcune.
      Tuttavia, per sicurezza, è possibile annullare queste modifiche dopo aver modificato il comando come descritto di seguito, il che comporta il ripristino dell'entità di TrustedInstallersicurezza come proprietario della commandchiave; si noti che è necessario specificarlo come
      NT SERVICE\TrustedInstaller.

  • Ora sostituisci il valore commanddella chiave (Default)con il seguente comando:
    powershell.exe -noexit -command Set-Location -literalPath \"%V\"

Dovrebbe essere possibile scrivere i passaggi precedenti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.