58 votes

Comment changer l'option "Ouvrir avec Powershell" en "Ouvrir avec l'invite de commande" lorsque l'on clique sur le bouton droit de la souris dans l'Explorateur ?

Si vous cliquez sur un endroit vide dans l'Explorateur avec la touche Shift et le bouton droit de la souris, vous verrez apparaître les éléments suivants "Ouvrir avec PowerShell" au lieu de "Ouvrir avec l'invite de commande" depuis le Mise à jour pour les créateurs (2017-04). Comment faire pour retrouver l'ancien comportement où il est affiché. "Ouvrir avec l'invite de commande" ?

J'ai essayé de changer le paramètre "Afficher PowerShell au lieu de Command Prompt lors d'un clic droit sur le menu Démarrer ou en appuyant sur Windows + X". sur off, mais cela n'a pas changé le menu shift+clic droit.

1voto

John Wicked Points 111

Voici comment remplacer PowerShell par CMD :

  1. Ouvrez l'éditeur de registre, en cherchant simplement " regedit "sur Cortana/Search ou via Run (Win + R)
  2. Dans la barre d'adresse de l'éditeur de registre, collez " Computer\HKEY_CLASSES_ROOT\Directory\Background\shell "et appuyez sur la touche Entrée
  3. Dans la barre latérale, trouvez "cmd" et faites un clic droit, puis sélectionnez "Permissions".
  4. Dans la boîte de dialogue des autorisations, cliquez sur Avancé
  5. Cliquez sur le bouton "Modifier" à côté du champ "Propriétaire" en haut de la boîte de dialogue "Avancé".
  6. Dans le champ de saisie, entrez votre nom d'utilisateur - il peut également s'agir de l'adresse électronique de votre compte Microsoft. Appuyez sur la touche Entrée après avoir saisi votre nom d'utilisateur/adresse électronique.
  7. Dans la fenêtre Permissions, sélectionnez Administrateurs dans la section supérieure et autorisez le contrôle total en cochant la case Autoriser dans la boîte de dialogue, puis appliquez les modifications et fermez la fenêtre.
  8. Maintenant, supprimez le DWORD " HideBasedOnVelocityId " pour CMD à partir de l'éditeur de registre
  9. Vous devrez peut-être redémarrer l'Explorateur de fichiers à partir du gestionnaire de tâches pour voir les changements en action.

La méthode ci-dessus affichera CMD dans le menu contextuel lorsque vous faites Shift + clic droit dans l'explorateur de fichiers. Mais si vous voulez vous débarrasser de PowerShell, vous pouvez le faire en suivant les étapes ci-dessous :

  1. Suivez les étapes 1-7 ci-dessus - mais changez les permissions pour " PowerShell " au lieu du CMD .
  2. Une fois que vous avez appliqué les nouvelles permissions pour PowerShell, supprimez le DWORD " ShowBasedOnVelocityId "pour PowerShell
  3. Après cela, créez un nouveau DWORD et l'appeler " *HideBasedOnVelocityId* "
  4. Double-cliquez sur le fichier nouvellement créé DWORD et changer le hexadécimal à la valeur " 639bc8 "
  5. Une fois encore, vous devrez peut-être redémarrer l'explorateur de fichiers à partir du gestionnaire de tâches pour voir les changements en action.

0voto

Phann Points 101

Une solution de contournement sans droits d'administrateur (par exemple, sans modifier le registre) :

Windows + R : shell:sendto (ouvrir Explorer dans le send to de l'utilisateur actuel (ou aller là manuellement avec C:\Users\<user>\AppData\Roaming\Microsoft\Windows\SendTo .

Créez un nouveau fichier .bat avec cmd en tant que texte seulement (par exemple _cmd_here.bat ).

Vous pouvez maintenant cliquer avec le bouton droit de la souris sur n'importe quel fichier dans le répertoire souhaité (avec ou sans shift) -> envoyer à ->. _cmd_here.bat et la ligne de commande est ouverte dans le répertoire de ce fichier.

Cela vous coûte un clic (en fait, un survol de la souris) de plus pour accéder à la page d'accueil. send to et vous devez avoir au moins un fichier dans le répertoire, mais à part cela, je pense que c'est une solution au problème.

0voto

Jimadine Points 1180

Les instructions suivantes permettront de restaurer le Open command window here en conservant l'élément de menu contextuel existant Open Powershell window here dans le menu contextuel. Testé sous Windows 10 1909.

  1. Appuyez sur le bouton Touche fenêtre + R

  2. Type regedit . Cliquez sur OK bouton

  3. Au Voulez-vous permettre à cette application d'apporter des modifications à vos données personnelles ? appareil ? question, cliquez sur Oui

  4. Dans regedit, naviguez jusqu'à Computer\HKEY_CLASSES_ROOT\Drive\shell\cmd en copiant et collant le chemin du registre dans la barre d'adresse en haut de l'écran

  5. Cliquez avec le bouton droit de la souris sur cmd dans le volet de gauche > Permissions... > Avancé bouton

  6. Dans la fenêtre qui s'affiche, cliquez sur le bouton Changement hyperlien, à côté de Propriétaire : au sommet. Par défaut, le propriétaire est Trusted installer

  7. Dans la fenêtre qui s'affiche, saisissez votre nom d'utilisateur et cliquez sur Vérifier les noms bouton. Cliquez sur le bouton OK une fois qu'il a reconnu votre nom d'utilisateur

  8. Retour sur l'écran précédent, en travaillant de haut en bas :

    • Tic-tac Remplacer le propriétaire sur les sous-conteneurs et les objets
    • Cliquez sur le bouton Activer l'héritage bouton
    • Tic-tac Remplacer toutes les entrées de permission des objets enfants par des permissions héritables de cet objet.
    • Cliquez sur OK
    • Cliquez sur Oui à la Voulez-vous continuer ? question
    • Cliquez sur OK à nouveau
  9. Retour dans regedit dans le volet central, cliquez à droite sur HideBasedOnVelocityId et dans le menu contextuel, choisissez Renommer . Renommez la valeur en ShowBasedOnVelocityId

  10. Naviguez vers Computer\HKEY_CLASSES_ROOT\Directory\shell\cmd via la barre d'adresse et répétez les étapes 5 à 9

  11. Naviguez vers Computer\HKEY_CLASSES_ROOT\Directory\Background\shell\cmd via la barre d'adresse et répétez les étapes 5 à 9

  12. Fermez regedit

Remarque : il se peut que vous deviez refaire certaines des modifications après une mise à jour des fonctionnalités de Windows.

0voto

Jimadine Points 1180

Voici un script qui va ajouter le Open command window here au menu contextuel de l'Explorateur, accessible par un clic droit. Le script utilise RunAsTI.bat d'ajouter et de supprimer les valeurs de registre pertinentes en tant que TrustedInstaller compte. Cela évite de modifier les permissions des clés de registre. Exécutez-le depuis une fenêtre de commande élevée. Aucun redémarrage de quoi que ce soit n'est nécessaire pour voir le changement.

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
OPENFILES.EXE 1>NUL 2>&1
IF ERRORLEVEL 1 ECHO You need to run this script from an elevated command prompt. Exiting. & EXIT /B 1
TITLE Configure CMD/Powershell for the Explorer SHIFT+RIGHTCLICK menu
SET REGKEYS=HKCR\Drive\shell HKCR\Directory\shell HKCR\Directory\Background\shell
FOR %%I IN (%REGKEYS%) DO SET CMD_STRING=!CMD_STRING!REG ADD %%I\cmd /v ShowBasedOnVelocityId /t REG_DWORD /d 6527944 /f ^& REG DELETE %%I\cmd /v HideBasedOnVelocityId /f ^& 
CALL :RunAsTI CMD /C "!CMD_STRING:~0,-3!"

REM https://github.com/AveYo/LeanAndMean
#:RunAsTI snippet to run as TI/System, with innovative HKCU load, ownership privileges, high priority, and explorer support  
set ^ #=& set "0=%~f0"& set 1=%*& powershell -c iex(([io.file]::ReadAllText($env:0)-split'#\:RunAsTI .*')[1])& exit /b
function RunAsTI ($cmd,$arg) { $id='RunAsTI'; $key="Registry::HKU\$(((whoami /user)-split' ')[-1])\Volatile Environment"; $code=@'
 $I=[int32]; $M=$I.module.gettype("System.Runtime.Interop`Services.Mar`shal"); $P=$I.module.gettype("System.Int`Ptr"); $S=[string]
 $D=@(); $T=@(); $DM=[AppDomain]::CurrentDomain."DefineDynami`cAssembly"(1,1)."DefineDynami`cModule"(1); $Z=[uintptr]::size 
 0..5|% {$D += $DM."Defin`eType"("AveYo_$_",1179913,[ValueType])}; $D += [uintptr]; 4..6|% {$D += $D[$_]."MakeByR`efType"()}
 $F='kernel','advapi','advapi', ($S,$S,$I,$I,$I,$I,$I,$S,$D[7],$D[8]), ([uintptr],$S,$I,$I,$D[9]),([uintptr],$S,$I,$I,[byte[]],$I)
 0..2|% {$9=$D[0]."DefinePInvok`eMethod"(('CreateProcess','RegOpenKeyEx','RegSetValueEx')[$_],$F[$_]+'32',8214,1,$S,$F[$_+3],1,4)}
 $DF=($P,$I,$P),($I,$I,$I,$I,$P,$D[1]),($I,$S,$S,$S,$I,$I,$I,$I,$I,$I,$I,$I,[int16],[int16],$P,$P,$P,$P),($D[3],$P),($P,$P,$I,$I)
 1..5|% {$k=$_; $n=1; $DF[$_-1]|% {$9=$D[$k]."Defin`eField"('f' + $n++, $_, 6)}}; 0..5|% {$T += $D[$_]."Creat`eType"()}
 0..5|% {nv "A$_" ([Activator]::CreateInstance($T[$_])) -fo}; function F ($1,$2) {$T[0]."G`etMethod"($1).invoke(0,$2)}   
 $TI=(whoami /groups)-like'*1-16-16384*'; $As=0; if(!$cmd) {$cmd='control';$arg='admintools'}; if ($cmd-eq'This PC'){$cmd='file:'}
 if (!$TI) {'TrustedInstaller','lsass','winlogon'|% {if (!$As) {$9=sc.exe start $_; $As=@(get-process -name $_ -ea 0|% {$_})[0]}}
 function M ($1,$2,$3) {$M."G`etMethod"($1,[type[]]$2).invoke(0,$3)}; $H=@(); $Z,(4*$Z+16)|% {$H += M "AllocHG`lobal" $I $_}
 M "WriteInt`Ptr" ($P,$P) ($H[0],$As.Handle); $A1.f1=131072; $A1.f2=$Z; $A1.f3=$H[0]; $A2.f1=1; $A2.f2=1; $A2.f3=1; $A2.f4=1
 $A2.f6=$A1; $A3.f1=10*$Z+32; $A4.f1=$A3; $A4.f2=$H[1]; M "StructureTo`Ptr" ($D[2],$P,[boolean]) (($A2 -as $D[2]),$A4.f2,$false)
 $Run=@($null, "powershell -win 1 -nop -c iex `$env:R; # $id", 0, 0, 0, 0x0E080600, 0, $null, ($A4 -as $T[4]), ($A5 -as $T[5]))
 F 'CreateProcess' $Run; return}; $env:R=''; rp $key $id -force; $priv=[diagnostics.process]."GetM`ember"('SetPrivilege',42)[0]   
 'SeSecurityPrivilege','SeTakeOwnershipPrivilege','SeBackupPrivilege','SeRestorePrivilege' |% {$priv.Invoke($null, @("$_",2))}
 $HKU=[uintptr][uint32]2147483651; $NT='S-1-5-18'; $reg=($HKU,$NT,8,2,($HKU -as $D[9])); F 'RegOpenKeyEx' $reg; $LNK=$reg[4]
 function L ($1,$2,$3) {sp 'HKLM:\Software\Classes\AppID\{CDCBCFCA-3CDC-436f-A4E2-0E02075250C2}' 'RunAs' $3 -force -ea 0
  $b=[Text.Encoding]::Unicode.GetBytes("\Registry\User\$1"); F 'RegSetValueEx' @($2,'SymbolicLinkValue',0,6,[byte[]]$b,$b.Length)}
 function Q {[int](gwmi win32_process -filter 'name="explorer.exe"'|?{$_.getownersid().sid-eq$NT}|select -last 1).ProcessId}
 $11bug=($((gwmi Win32_OperatingSystem).BuildNumber)-eq'22000')-AND(($cmd-eq'file:')-OR(test-path -lit $cmd -PathType Container))
 if ($11bug) {'System.Windows.Forms','Microsoft.VisualBasic' |% {[Reflection.Assembly]::LoadWithPartialName("'$_")}}
 if ($11bug) {$path=$path='^(l)'+$($cmd -replace '([\+\^\%\~\(\)\[\]])','{$1}')+'{ENTER}'; $cmd='control.exe'; $arg='admintools'}
 L ($key-split'\\')[1] $LNK ''; $R=[diagnostics.process]::start($cmd,$arg); if ($R) {$R.PriorityClass='High'; $R.WaitForExit()}
 if ($11bug) {$w=0; do {if($w-gt40){break}; sleep -mi 250;$w++} until (Q); [Microsoft.VisualBasic.Interaction]::AppActivate($(Q))}
 if ($11bug) {[Windows.Forms.SendKeys]::SendWait($path)}; do {sleep 7} while(Q); L '.Default' $LNK 'Interactive User'
'@; $V='';'cmd','arg','id','key'|%{$V+="`n`$$_='$($(gv $_ -val)-replace"'","''")';"}; sp $key $id $($V,$code) -type 7 -force -ea 0
 start powershell -args "-win 1 -nop -c `n$V `$env:R=(gi `$key -ea 0).getvalue(`$id)-join''; iex `$env:R" -verb runas
}; $A=$env:1-split'"([^"]+)"|([^ ]+)',2|%{$_.Trim(' "')}; RunAsTI $A[1] $A[2]; #:RunAsTI lean & mean snippet by AveYo, 2022.01.28

Si vous voulez remplacer le site Open PowerShell window here option avec Open command window here ou vous voulez rétablir les valeurs par défaut Open PowerShell window here en l'ayant préalablement modifié, vous pouvez utiliser une option de type version améliorée du script .

Notez quelques choses bénignes qui se produiront lorsque vous exécuterez l'une ou l'autre version du script :

  • Vous pouvez voir un The system cannot find the drive specified. dans votre fenêtre CMD
  • Vous verrez probablement quelques REG les erreurs dans la fenêtre CMD enfant qui est créée après l'exécution du script.
  • Une fois que le script a terminé, vous verrez un Control Panel\All Control Panel Items\Administrative Tools fenêtre. Celle-ci peut être fermée en toute sécurité, puisqu'elle n'est qu'un effet secondaire de l'utilisation de l'option RunAsTI snippet

-1voto

Riccardo La Marca Points 233

Cela cache powershell du menu contextuel Shift-Clic droit et rend cmd visible.

À l'aide d'un simple éditeur de texte tel que le Bloc-notes, enregistrez le code suivant dans un fichier portant l'extension .REG (par ex. MyImport.reg ). Ensuite, double-cliquez sur le fichier enregistré et suivez les instructions pour l'importer dans le registre :

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd]
"ShowBasedOnVelocityId"=dword:00639bc8

[HKEY_CLASSES_ROOT\Directory\Background\shell\Powershell]
"HideBasedOnVelocityId"=dword:00639bc8

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
"ShowBasedOnVelocityId"=dword:00639bc8

[HKEY_CLASSES_ROOT\Directory\shell\Powershell]
"HideBasedOnVelocityId"=dword:00639bc8

[HKEY_CLASSES_ROOT\Drive\shell\cmd]
"ShowBasedOnVelocityId"=dword:00639bc8

[HKEY_CLASSES_ROOT\Drive\shell\Powershell]
"HideBasedOnVelocityId"=dword:00639bc8

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