J'ai créé un raccourci vers cmd.exe et spécifié le dossier dans lequel je veux commencer. Je suis ensuite allé dans Options avancées et ai coché Exécuter en tant qu'administrateur .
Lorsque je double-clique sur le raccourci, il commence toujours par C:\Windows\System32
.
Qu'est-ce qui me manque? Comment puis-je obtenir la ligne de commande pour démarrer dans le dossier spécifié?
Dans la cible, vous devez spécifier cmd /k cd c:\crp
Si vous souhaitez en comprendre le raisonnement, le Start in
est explicitement ignoré lors de l'élévation (uniquement sur les fichiers binaires faisant partie de Windows lui-même) afin de vous protéger contre une faille de sécurité potentielle.
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 ensuite être chargées avec des privilèges élevés. Pour éviter cela, UAC réinitialisera le répertoire de travail. Etant donné que "Démarrer dans" des raccourcis est défini avant que l'élévation ne se produise, il est réinitialisé pendant l'élévation. Dans un monde idéal, cette protection s'appliquerait à toutes les élévations, mais uniquement aux fichiers binaires Windows intégrés, car elle interrompt certains programmes tiers qui supposent que le répertoire de travail soit préservé.
Les autres réponses contournent ce problème en indiquant à la variable cmd
élevée de changer son répertoire de travail after / elevation, via l'argument /k
.
Dans l'explorateur, il y a un barre d'accès rapide (QAT) depuis l'intruduction du ruban dans Windows 8. Cliquez sur File
name __-> open CMD Prompt
-> Open CMD Prompt as admin
et cliquez pour le lier à QAT.
Maintenant, vous pouvez cliquer sur cette icône dans chaque dossier de votre choix et la cmd s'ouvre maintenant dans ce dossier.
Pour exécuter le cmd en tant qu’administrateur plus rapidement à partir du QAT, appuyez sur le bouton ALT et vous voyez un numéro pour la position dans le QAT.
Si vous appuyez maintenant sur le numéro, l'outil à cette position est démarré (dans mon cas, 4 exécute la commande en tant qu'administrateur).
Barlop est correct. Si vous ajoutez /k cd "\path\to\folder"
au champ Cible (après cmd.exe
), la fenêtre d'invite de commande résultante exécutera la commande cd
et vous laissera ensuite une invite à utiliser comme bon vous semble. Si vous devez passer à un autre lecteur , vous aurez besoin de cd /d
plutôt que de cd
. Si vous devez passer sur un lecteur réseau, utilisez plutôt pushd
: il monte automatiquement le chemin UNC cible en tant que lecteur et le modifie.
Le passage de /k
à cmd
signifie "faites cette commande et k eep l'invite est ouverte". Tout ce qui suit le /k
est traité comme une commande littérale, vous n'avez donc pas à craindre de vous échapper. Vous pouvez utiliser &&
pour exécuter plusieurs commandes: cd "\path\to\folder" && echo Hi!
produira une invite dans ce répertoire avec Hi!
imprimé en haut.
L'équivalent de /k
qui ne garde pas l'invite est /c
(pour "exécuter ceci c ommand").
Ce n’est pas ce que vous demandez, mais si je vous ai bien compris, vous obtiendrez ce que vous essayez de contourner. essayez de shift
+ rightclick
sur le dossier spécifique et sélectionnez open command window here
. Au cas où ce ne serait pas votre problème, faites le moi savoir et je retirerai ceci.
Et (grâce à Bob; je ne le savais pas avant), il est même possible de faire cela surélevé.
Source de commentaire de Bob .
[...] Pendant que nous sommes ici, nous pouvons également ajouter les clés requises pour ouvrir une invite élevée de chaque lettre de lecteur attachée au système. Cela peut facilement être accompli en ajoutant une entrée dans le registre. Donc, copiez/collez le texte ci-dessous dans un fichier texte, nommez-le par exemple “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 un dossier, vous verrez les deux options.
Lorsque vous ouvrez l'invite de commande en tant qu'administrateur et que "C:\Windows\System32" s'affiche, il vous suffit d'entrer "cd .." et vous obtiendrez un répertoire qui sera "C:\Windows". . Répétez "cd .." à nouveau pour aller à "C: \" d'où vous pouvez maintenant "cd Utilisateurs/nom/dossier"
Pour quiconque, comme moi, qui est tombé sur cela en essayant d'ouvrir cmd en tant qu'administrateur dans un lecteur séparé ("E:" dans mon cas), vous pouvez avoir rencontré des problèmes en essayant de cd E:/somedir
ou similaire. Cela ne changera pas le répertoire sur le nouveau lecteur.
Si tel est votre problème et que vous avez juste besoin de utiliser cmd en tant qu'administrateur sur un autre lecteur , la syntaxe de cmd est en réalité juste E:
(ou toute lettre de lecteur), sans commande cd
.
Donc vous pouvez simplement:
E:
(ou la lettre de lecteur que vous souhaitez remplacer, suivie de deux points)Si vous devez démarrer à partir d'un lecteur différent (par exemple, D:\quelque chose) de votre lecteur système (par exemple, C:\Windows\system32), vous pouvez ajouter les éléments suivants à votre champ "Cible":
cmd /k "cd /d D:\<your directory here>"
La clé ici est d'ajouter l'option /d
devant votre cd
.