Inicie o prompt de comando elevado no diretório% UserProfile% por padrão?

7

Quando inicio um prompt de comando elevado no Windows 7 ou no Windows Vista, o diretório inicial é o diretório %SystemRoot%\system32 .

Este é o comportamento padrão do Windows, e não é um problema específico do meu sistema, então não estou esperando algum tipo de "correção de bug" aqui, mas sim um ajuste para "consertar" o comportamento padrão.

Para repro:

  • Clique em Iniciar
  • Digite cmd.exe
  • Pressione Ctrl + Deslocamento + Digite
  • Quando o prompt de elevação aparecer, selecione Yes

Esperado:

  • O diretório inicial é meu diretório de perfil do usuário, por exemplo %código%

Real:

  • O diretório inicial é o diretório system32, C:\Users\merlyn

Eu gostaria que isso fosse fácil de trabalhar. Gostaria que fosse aplicado a todos os prompts / atalhos do cmd.exe, independentemente de onde eles foram iniciados. Por exemplo. Gostaria que fosse aplicado automaticamente ao meu C:\Windows\system32 sem ter que modificar esse atalho específico.

Eu gostaria que isso fosse seguro para que os arquivos em lote não fossem corrompidos pelas minhas correções.

Existe uma maneira fácil e segura de obter qualquer prompt de comando elevado para iniciar no diretório Visual Studio Command Prompt (2010) por padrão?

    
por Merlyn Morgan-Graham 13.03.2012 / 02:15

2 respostas

12

Abrir um prompt de comando elevado sempre começa em %systemroot%\System32 , a lógica é que, se você estiver fazendo algo que requeira privilégios elevados, provavelmente estará trabalhando em arquivos do sistema, em vez de apenas nos próprios arquivos do usuário. sem privilégios elevados.

Você pode contornar isso:

  1. Abra um editor de registro (por exemplo, regedit )
  2. Navegue até HKEY_CURRENT_USER\Software\Microsoft\Command Processor
  3. Edite o valor Autorun para ler cd /d %userprofile%

Agora, sempre que você abrir um prompt de comando, ele iniciará ou alternará, conforme o caso, para o diretório de perfil do usuário. Além disso, em vez de HKCU , você pode definir o valor na ramificação HKLM para fazer isso para todos os usuários no sistema.

    
por 13.03.2012 / 03:28
0

Supondo que o seu login merlyn tenha direitos administrativos, ele não tem esses direitos até que o prompt do UAC seja processado. Esses direitos vêm exigindo os direitos elevados e recebendo-os quando o prompt foi corretamente passado. Sob o token elevado, ele está sendo executado em um contexto de segurança diferente do nível padrão de sua conta pré-UAC autorizado. Tudo isso significa que o resultado esperado é falso e o resultado real é realmente o esperado.

Entendendo e configurando o controle de conta de usuário

    
por 13.03.2012 / 03:16