Como posso sempre executar o prompt de comando como administrador?

97

Como desenvolvedor, muitas vezes tenho a necessidade de abrir um prompt de comando para várias finalidades. Por exemplo, eu uso iisreset para reiniciar meu servidor web local.

Eu normalmente abro a janela de comando de duas maneiras:

  1. Pressione Win , digite "cmd" e pressione Enter
  2. Enquanto estiver no Explorer, pressione Shift e clique com o botão direito do mouse em uma pasta e escolha "Abrir janela de comando aqui"

No entanto, quando eu abro a janela de comando de uma destas maneiras, não tenho privilégios de administrador que eu sinto que tenho direito.

Paraexecutaraplicativossomenteadministradores,eutenhoqueabriralinhadecomandodestamaneirarelativamentetrabalhosa:

  1. PressioneWin,digite"cmd"
  2. Aguarde até que o menu preencha
  3. Levante a mão do teclado e coloque-o no mouse
  4. Clique com o botão direito do mouse no item de menu "cmd.exe"
  5. Escolha "Executar como administrador"

Isso é inaceitável por vários motivos:

  • A janela sempre abre em C: \ windows \ system32, em vez do diretório Users (como na técnica aprovada 1) ou na pasta em que quero estar (como na técnica aprovada 2). Por isso, muitas vezes tenho que mudar de diretório para chegar onde quero ir.
  • Esse processo é vários milissegundos mais lento que qualquer um dos meus métodos preferidos. Realizado várias vezes ao dia, todos os dias, até o final da minha carreira, ele soma cerca de dez dias de tempo perdido gasto clicando e aguardando e mudando o diretório.
  • Como programadora, realizar uma tarefa robótica sem sentido me causa uma grande dor emocional.
  • Como programadora, levantar a mão é uma tarefa árdua que me causa grande dor física.

É por isso que estou procurando uma solução única que permita que as técnicas aprovadas 1 & 2 prompts de comando do administrador aberto.

Muitos programas permitem que você altere permanentemente o nível de privilégio padrão no menu Propriedades. O Prompt de Comando não é um desses programas.

Comoeufaçoajaneladecomandoexecutarcomoadministradorporpadrão(mesmoquandousandoaopçãodemenudecontexto"Abrir janela de comando aqui")?

    
por Kevin 25.07.2012 / 15:57

13 respostas

85

Para responder a primeira parte da sua pergunta, quando você apertar a tecla Windows e digitar "CMD" você pode pressionar Ctrl + Deslocar + Enter para abrir como administrador.

Para responder à segunda parte da sua pergunta, cole o seguinte no bloco de notas e salve-o com a extensão ".reg":

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

Em seguida, execute o arquivo. Ele irá mesclar as alterações no registro e adicionar a opção aos seus menus de contexto. (Nenhuma tecla shift é necessária.)

    
por 25.07.2012 / 16:12
37

Many programs let you permanently change their default privilege level from the Properties menu. Command Prompt is not one of those programs.

A guia Compatibilidade está completamente desativada para todos dos executáveis do Windows:

ParadefinirprivilégiosdeadministradorparaexecutáveisdoWindows,vocêprecisacriarumatalhoeusaraabaAtalhoAdvanced(oitemdepromptdecomandonomenuIniciarjáéumatalho):

The window always opens in C:\windows\system32, rather than my Users directory (as in approved technique 1) or the folder I want to be in (as in approved technique 2). So I often have to change directories to get where I want to go.

Isso é normal e faz sentido, pois se você estiver abrindo um prompt de comando admin, provavelmente estará fazendo algumas ações do sistema para as quais precisa de privilégios de administrador em vez de ações do usuário para as quais já possui permissões.

Você pode definir o diretório padrão globalmente adicionando / editando a entrada de registro Autorun (não é necessário que seja uma cadeia expansível para usar variáveis de ambiente):

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="cd /d \"%userprofile%\""

Agora, sempre que você abrir um prompt de comando usando qualquer método será automaticamente padronizado (bem, tecnicamente diretório de mudanças ) para o seu diretório de perfil de usuário.

Melhor ainda, você pode adicionar outros comandos para serem executados automaticamente sempre que abrir um prompt de comando usando o operador & (por exemplo, cd /d %userprofile% & cls & dir ). Além disso, você pode definir o mesmo valor na mesma chave sob a ramificação HKLM para configurá-lo para todos os usuários.


Observe que você ainda terá que aceitar o prompt do UAC. Infelizmente não há (atualmente?) Nenhuma maneira de criar uma lista de permissões do UAC de programas confiáveis para que o prompt de comando possa ser executado como administrador sem ter que aceitar o prompt. Isso deixa você com (a) poucas opções.

No primeiro caso, você evita completamente o UAC, enquanto que, nos dois últimos, só insere suas credenciais ao criar o atalho.

    
por 25.07.2012 / 16:56
18

A solução que eu uso é abrir o prompt de comando abrindo o menu Iniciar, digitando 'cmd' e pressionando Ctrl + Deslocar + Enter . Isso fará com que o programa selecionado seja iniciado como administrador.

    
por 13.11.2011 / 08:15
12

Para executar automaticamente CMD como administrador sempre que for clicado (sem ter que clicar com o botão direito do mouse ou criar atalhos adicionais), há uma correção fácil para isso:

  1. No Editor do Registro , navegue até:% HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

    • Se não houver uma Layers pasta , você terá que criar uma e nomeá-la:
      Clique com o botão direito do mouse na pasta AppCompatFlags Selecione Nova Chave
  2. Clique com o botão direito do mouse em Layers , selecione Novo Valor da seqüência . Defina o nome do novo valor de string como o caminho completo para o prompt de comando ( CMD.EXE ) (por exemplo, C:\Windows\System32\cmd.exe )

  3. Clique duas vezes no novo valor de string para modificá-lo e defina os "Dados do valor" como RUNASADMIN .

Eu tive o mesmo aborrecimento e isso funcionou para mim.

    
por 10.03.2013 / 23:08
10

Se você quiser que o CMD.exe seja sempre executado como administrador, adicione o seguinte código de registro ao seu Registro:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\Windows\System32\cmd.exe"="~ RUNASADMIN"
"C:\Windows\SysWOW64\cmd.exe"="~ RUNASADMIN"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\Windows\System32\cmd.exe"="~ RUNASADMIN"
"C:\Windows\SysWOW64\cmd.exe"="~ RUNASADMIN"
    
por 04.01.2014 / 18:10
4

A maneira mais fácil de contornar todo o sofrimento do UAC, etc., é configurar uma entrada de Agendamento de Tarefa para executar cmd.exe usando os privilégios mais altos. Não crie um evento Trigger para ele e certifique-se de que a caixa de seleção Permitir que a tarefa seja executada por demanda esteja marcada na guia Configurações. Além disso, na guia Configurações, verifique se a lista suspensa "Se a tarefa já estiver em execução, depois a regra a seguir se aplica" estiver definida como Não iniciar uma nova instância.

Em seguida, crie um atalho para isso em sua área de trabalho e execute-o a partir daí, ou por meio de uma tecla de atalho ou fixe o atalho na barra de tarefas.

Eu fiz isso no meu sistema Windows 7 e funciona perfeitamente.

    
por 25.09.2013 / 03:03
3

Existem algumas ferramentas que usei que eram outras soluções alternativas (além do que o Jesse mencionou).

De volta quando o Vista apareceu pela primeira vez, a Microsoft lançou um " elevar " powerToy que foi bastante útil e fez o trabalho e ainda, eu acredito (não testei) funciona para o Windows 7. Solte-o em seu ambiente de caminho e você pode executar "elevar iisreset" de um prompt de comando normal (ou mesmo "elevar cmd "desde o início / executar ou criar um atalho)

    
por 25.07.2012 / 16:31
2

Copie & Cole cmd.exe e renomeie como "cmda.exe" na pasta \ system32 \ (337 KB não é nem um grande problema ...). A opção "executar como administrador" nas propriedades do cmda.exe não ficará mais esmaecida e você poderá defini-la para ser sempre executada como administrador. Agora você terá dois prompts de comando: o primeiro é regular, o segundo tem um privilégio (a) dmin. É tão fácil digitar "cmda" na barra de pesquisa Win como você faz com "cmd"!

Para o cmd no menu de contexto com privilégio de administrador, verifique se você já tem cmda.exe no lugar, adicione isso ao novo arquivo .reg & lançá-lo

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda]
@="Open command window here (Administrator)"
"HasLUAShield"=""
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda\Command]
@="cmda.exe /s /k pushd \"%V\""

Você verá duas mesmas linhas no menu de contexto (shift); um Prompt de Comando não elevado e outro com "(Administrador)" adicionados.

É isso aí ...

    
por 23.09.2013 / 12:28
1

Crie um atalho para cmd.exe, clique com o botão direito do mouse e selecione propriedades, na guia Atalho selecione Avançado, marque Executar como administrador.

    
por 25.07.2012 / 18:59
1

Eu acho que a maneira mais fácil de executar sempre cmd como admin é fazer o arquivo .reg com o código abaixo:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
@="C:\Windows\System32\cmd.exe"="RUNASADMIN"

Cole no bloco de notas ou algo assim e salve como arquivo .reg. Nota: Isso faz com que o prompt de comando seja executado como admin para todos os usuários. Para executar sempre como administrador apenas no seu usuário, basta alterar HKEY_LOCAL_MACHINE para HKEY_CURRENT_USER

    
por 15.12.2013 / 04:45
1

Tudo graças a Jesse Brohinsky

Uma versão mais aprimorada. Isso também inclui o diretório de plano de fundo que permite que você opencmd de dentro da pasta também. Também por causa disso você pode abrir o comando como não admin.

Além disso, você pode desativar o AdminApprovalMode. Desta forma, você não precisa executar como administrador quando você é administrador. link

Windows Registry Editor Version 5.00
;write minus before to unreg example: [-HKEY_CLASSES_ROOT\Directory\shell\cmdhere]

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
    
por 15.01.2015 / 10:26
0

O seguinte funciona para mim

@echo off
:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------

você receberá o mesmo prompt do uac confirmando para runas admin .. achei há algum tempo @ @ stackexchange

    
por 23.09.2014 / 10:41
-1

A única outra maneira, além do que Dracs mencionou, é desabilitar completamente o UAC

    
por 13.11.2011 / 09:30