46 votes

Comment ouvrir l'Invite de commande dans un dossier spécifique en tant qu'administrateur ?

J'ai créé un raccourci vers cmd.exe et spécifié le dossier dans lequel je veux démarrer. Je suis ensuite allé dans Avancé et j'ai coché Exécuter en tant qu'administrateur .

Lorsque je double-clique sur le raccourci, il démarre toujours en mode C:\Windows\System32 .

Que me manque-t-il ? Comment faire pour que la ligne de commande démarre dans le dossier spécifié ?

shortcut properties

the prompt, in System32

56voto

Bob Points 58080

Si vous souhaitez connaître le raisonnement sous-jacent, vous pouvez consulter la page Start in ist explicitement ignorée lors de l'élévation (uniquement sur les binaires qui font partie de Windows) pour se protéger contre une éventuelle faille de sécurité.

L'idée de base est que les DLL potentiellement malveillantes situées dans le répertoire de travail peuvent être contrôlées par un utilisateur autre que l'administrateur actuel et peuvent donc être chargées avec des privilèges élevés. Pour éviter cela, l'UAC réinitialise le répertoire de travail. Étant donné que le paramètre "Démarrer dans" des raccourcis est défini avant l'élévation, il est réinitialisé lors de l'élévation. Dans un monde idéal, cette protection s'appliquerait à toutes les élévations, mais elle ne s'applique qu'aux binaires Windows intégrés, car elle perturbe certains programmes tiers qui s'attendent à ce que le répertoire de travail soit préservé.

Les autres réponses contournent ce problème en disant à la personne élevée cmd pour changer son répertoire de travail après se produit, par l'intermédiaire de la /k argument.

48voto

barlop Points 21549

Dans la cible, vous devez spécifier cmd /k cd c:\crp

31voto

magicandre1981 Points 94338

À l'intérieur d'Explorer, il y a un Barre d'outils d'accès rapide (QAT) depuis l'introduction du ruban dans Windows 8. Cliquez sur File -> open CMD prompt -> Open CMD prompt as admin et faire un clic droit et sélectionner pour l'épingler à QAT.

enter image description here

Vous pouvez maintenant cliquer sur cette icône dans tous les dossiers que vous souhaitez et la commande s'ouvre alors dans ce dossier.

enter image description here

Pour exécuter plus rapidement la commande cmd as admin à partir de la QAT, appuyez sur la touche ALT et vous voyez apparaître le numéro du poste dans la TAQ.

enter image description here

Si vous appuyez maintenant sur le numéro, l'outil à cette position est lancé (dans mon cas, 4 exécute le cmd en tant qu'administrateur).

12voto

Ben N Points 38070

Barlop a raison. Si l'on ajoute /k cd "\path\to\folder" dans le champ Cible (après cmd.exe ), la fenêtre d'invite de commande résultante exécutera la commande cd et vous laisse avec une invite que vous pouvez utiliser à votre guise. Si vous avez besoin de changer de conduire Vous aurez besoin de cd /d plutôt que de se contenter de cd . Si vous devez passer à un lecteur réseau, utilisez la fonction pushd au lieu de cela - il monte automatiquement le chemin UNC cible en tant que lecteur et le modifie.

En /k commutateur à cmd signifie "faites cette commande et k euillez garder l'invite ouverte". Tout ce qui suit le /k est traité comme une commande littérale, vous n'avez donc pas à vous soucier de l'échappement. Vous pouvez utiliser && pour exécuter plusieurs commandes : cd "\path\to\folder" && echo Hi! produira une invite dans ce répertoire avec Hi! imprimée en haut.

L'équivalent de /k qui ne garde pas le message autour de lui est /c (pour "exécuter ce c ommande").

3voto

Zaibis Points 143

Ce n'est pas ce que vous demandez, mais si je vous comprends bien, vous obtiendrez ce que vous essayez de contourner. shift + rightclick sur le dossier spécifique et sélectionnez open command window here . Si ce n'est pas votre problème, faites-le moi savoir et je le supprimerai.

Et (merci à Bob ; je ne le savais pas non plus auparavant) il est même possible de le faire en hauteur.

Source de Commentaire de Bob .

[...] Pendant que nous sommes ici, nous pouvons également ajouter les clés nécessaires pour ouvrir une invite élevée de chaque lettre de lecteur attachée au système. Ceci peut être facilement réalisé en ajoutant une entrée dans le registre. Copiez/collez le texte ci-dessous dans un fichier texte, donnez-lui un nom tel que "admin.reg" et double-cliquez dessus.

Windows Registry Editor Version 5.00    
[-HKEY_CLASSES_ROOT\Directory\shell\runas]       
[HKEY_CLASSES_ROOT\Directory\shell\runas]  @="Open command window here as Administrator"  "HasLUAShield"=""    
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]  @="cmd.exe /s /k pushd \"%V\""    
[-HKEY_CLASSES_ROOT\Directory\Background\shell\runas]    
[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]  @="Open command window here as Administrator"  "HasLUAShield"="" 
[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]  @="cmd.exe /s /k pushd \"%V\""    
[-HKEY_CLASSES_ROOT\Drive\shell\runas]    
[HKEY_CLASSES_ROOT\Drive\shell\runas]  @="Open command window here as Administrator"  "HasLUAShield"=""    
[HKEY_CLASSES_ROOT\Drive\shell\runas\command]  @="cmd.exe /s /k pushd \"%V\""

Maintenant, si vous faites un clic droit sur n'importe quel dossier, vous verrez les deux options.

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