No alvo, você deve especificar cmd /k cd c:\crp
Eu fiz um atalho para o cmd.exe e especifiquei a pasta na qual gostaria de iniciar. Em seguida, fui para Avançado e marquei Executar como administrador .
Quando eu clico duas vezes no atalho, ele sempre começa em C:\Windows\System32
.
O que eu sinto falta? Como posso obter a linha de comando para iniciar na pasta especificada?
Se você quiser o raciocínio subjacente, o Start in
é explicitamente ignorado quando a elevação é executada (somente em binários que fazem parte do próprio Windows) para proteger contra uma potencial vulnerabilidade de segurança.
A idéia básica é que as DLLs potencialmente maliciosas localizadas no diretório de trabalho podem ser controladas por um usuário diferente do administrador atual e, em seguida, podem ser carregadas com privilégios altos. Para evitar isso, o UAC redefinirá o diretório de trabalho. Como os atalhos "Start in" são definidos antes que a elevação ocorra, isso é redefinido durante a elevação. Em um mundo ideal, essa proteção se aplicaria a todas as elevações, mas só se aplica aos binários internos do Windows, pois quebra alguns programas de terceiros que esperam que o diretório de trabalho seja preservado.
As outras respostas ignoram isso, dizendo a cmd
elevada para alterar seu diretório de trabalho após a elevação, via argumento /k
.
Dentro do Explorer, há uma barra de ferramentas de acesso rápido (QAT) desde a intrusão da Faixa de Opções no Windows 8. Clique em File
- > open CMD prompt
- > Open CMD prompt as admin
e crie um clique com o botão direito e selecione-o como QAT.
Agoravocêpodeclicarnesteíconeemtodasaspastasquevocêgostaeocmdagoraabrenestapasta.
ParaexecutarocmdcomoadminmaisrápidoapartirdoQAT,pressioneateclaALTevocêveráumnúmeroparaaposiçãonoQAT.
Se você agora pressionar o número, a ferramenta nesta posição é iniciada (no meu caso, 4 executa o cmd como admin).
Barlop está correto. Se você adicionar /k cd "\path\to\folder"
ao campo Destino (após cmd.exe
), a janela Prompt de Comando resultante executará o comando cd
e, em seguida, deixará você com uma solicitação para fazer o que quiser. Se você precisar mudar para uma unidade diferente, precisará de cd /d
em vez de apenas cd
. Se você precisar mudar para uma unidade de rede, use pushd
- ela monta automaticamente o caminho UNC de destino como uma unidade e altera para ele.
A opção /k
para cmd
significa "faça este comando e k eep o prompt aberto." Tudo após o /k
é tratado como um comando literal, então você não precisa se preocupar em escapar. Você pode usar &&
para executar vários comandos: cd "\path\to\folder" && echo Hi!
produzirá um prompt nesse diretório com Hi!
impresso na parte superior.
O equivalente de /k
que não mantém o prompt é /c
(para "executar este c ommand").
Na verdade, isso não é o que você está pedindo, mas quando eu entendi bem, isso vai conseguir o que você tenta contornar. tente shift
+ rightclick
na pasta específica e selecione open command window here
. Caso isso não seja seu problema, apenas me avise e eu removerei isso.
E (graças a Bob; não sabia disso antes também), é até possível fazer isso de forma elevada.
Fonte do comentário do Bob .
[...]While we are here we can also add the required keys to open an elevated prompt of every drive letter attached to the system. This can easily be accomplished by adding an entry in the registry. So copy/paste the text below into a text file and give it a name of something like “admin.reg” and double-click it.
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\""
Now if you shift-right click on any folder you will see both options.
Quando você abre o prompt de comando como administrador e ele está mostrando "C: \ Windows \ System32" tudo o que você precisa fazer é digitar "cd .." e ele levará até um diretório que será "C: \ Windows". Repita "cd .." novamente para ir para "C: \" de onde você pode agora "cd Users / name / folder"
Para qualquer um, como eu, que tropeçou nisso ao tentar abrir cmd como administrador em uma unidade separada ("E:" no meu caso), você pode ter tido problemas ao tentar cd E:/somedir
ou algo semelhante. Fazer isso não mudará o diretório para a nova unidade.
Se este é um problema seu e você só precisa usar o cmd como administrador em uma unidade diferente , a sintaxe cmd é na verdade apenas E:
(ou qualquer letra de unidade), sem cd
comando.
Então você pode simplesmente:
E:
(ou qualquer letra de drive para a qual você deseja alternar seguido de dois pontos) Se você precisar iniciar a partir de uma unidade diferente (por exemplo, D: \ alguma coisa) do que a unidade do sistema (por exemplo, C: \ Windows \ system32), coloque o seguinte no campo "Destino":
cmd /k "cd /d D:\<your directory here>"
A chave aqui é adicionar a opção /d
na frente do seu cd
.