2012-07-25 13:57:17 +0000 2012-07-25 13:57:17 +0000
106
106

Como posso sempre executar o prompt de comando como administrador?

Como programador, tenho frequentemente a necessidade de abrir um prompt de comando para vários fins. Por exemplo, utilizo iisreset para reiniciar o meu servidor web local.

Normalmente abro a janela de comando de uma de duas maneiras:

  1. Prima Win, escreva “cmd” e prima Enter
  2. Enquanto estiver no Explorer, segure Shift e clique com o botão direito do rato numa pasta, e escolha “Abrir janela de comando aqui”

Contudo, quando abro a janela de comando de qualquer uma destas maneiras, não tenho os privilégios de administrador completos a que me sinto com direito.

Para executar aplicações apenas de administrador, tenho de abrir a linha de comando desta forma relativamente laboriosa:

  1. Prima Win, digite “cmd”
  2. Aguarde que o menu preencha
  3. Levante a mão do teclado e coloque-o no rato
  4. Clique com o botão direito do rato no item 5 do menu “cmd.exe”. Escolher “Run as administrator”

Isto é inaceitável por várias razões:

  • A janela abre-se sempre no C:\system32, em vez do meu directório Users (como na técnica aprovada 1) ou a pasta onde quero estar (como na técnica aprovada 2). Por isso, muitas vezes tenho de mudar de directório para chegar onde quero ir.
  • Este processo é vários milissegundos mais lento do que qualquer um dos meus métodos preferidos. Realizado várias vezes ao dia, todos os dias durante o resto da minha carreira, soma cerca de dez dias de tempo perdido a clicar e esperar e a mudar de directório.
  • Como programador, executar uma tarefa robótica inútil causa-me uma grande dor emocional.
  • Como programador, levantar a minha mão é uma tarefa extenuante que me causa grande dor física.

  • É por isso que estou à procura de uma solução única que permita que as técnicas aprovadas 1 & 2 de comando de administrador sejam abertas.

Muitos programas permitem-lhe alterar permanentemente o seu nível de privilégios padrão a partir do menu Propriedades. O Prompt de Comando não é um desses programas.

Como faço correr a janela de comandos como administrador por defeito (mesmo ao usar a opção de menu de contexto “Abrir janela de comandos aqui”)?

Respostas (13)

88
88
88
2012-07-25 14:12:02 +0000

Para responder à primeira parte da sua pergunta, quando carregar na tecla Windows e digitar “CMD” pode carregar em Ctrl + Shift + Enter para abrir como administrador.

Para responder à segunda parte da sua pergunta, cole o seguinte no bloco de notas e guarde-o com uma 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\""

Depois execute o ficheiro. Fundirá as alterações no registo e adicionará a opção aos seus menus de contexto. (Não é necessária a tecla shift).

38
38
38
2012-07-25 14:56:43 +0000

Muitos programas permitem-lhe alterar permanentemente o seu nível de privilégios padrão a partir do menu Propriedades. O Prompt de Comando não é um desses programas.

O separador Compatibilidade está completamente desactivado para todos os executáveis do Windows:

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

Para definir privilégios de administrador para executáveis do Windows, é necessário criar um atalho e utilizar Shortcut tab→Advanced (o item de comando-prompt no menu Iniciar já é um atalho):

A janela abre sempre em C:\system32, em vez do meu directório de Utilizadores (como na técnica aprovada 1) ou da pasta onde quero estar (como na técnica aprovada 2). Por isso, muitas vezes tenho de mudar de directório para chegar onde quero ir.

Isso é normal e faz sentido, uma vez que se estiver a abrir um comando de administração, está provavelmente a fazer algumas acções do sistema para as quais necessita de privilégios de administrador em vez de acções de utilizador para as quais já tem permissões de qualquer forma.

Pode definir o directório padrão globalmente adicionando/editando a entrada Autorun do registo (nem sequer tem de ser uma string expansível para utilizar variáveis de ambiente):

Agora, sempre que abrir um comando utilizando qualquer método, o seu directório de perfil de utilizador será automaticamente por defeito (bem, tecnicamente alterar-directório).

Ainda melhor, pode adicionar outros comandos para serem automaticamente executados sempre que abrir um comando-pronto utilizando o operador & (por exemplo, cd /d %userprofile% & cls & dir). Além disso, pode definir o mesmo valor na mesma tecla sob o ramo HKLM para o definir para todos os utilizadores.

Note que ainda terá de aceitar a solicitação UAC. Infelizmente não há (actualmente?) forma de criar uma “lista branca” de programas de confiança para que o prompt de comando possa ser executado como administrador sem ter de aceitar o prompt. Isto deixa-o com (a) poucas opções.

& - Pode recusar o UAC ou desligá-lo completamente (useraccountcontrolsettings.exe) - Pode usar um programa de elevação de privilégios como Elevator aka Elevate Me ou o Elevation PowerToy - Criar um elevado agendado tarefa , introduza as credenciais (uma vez) para ele, e depois crie um atalho para a tarefa

No primeiro caso, evita completamente a UAC enquanto nos dois últimos, só introduz as suas credenciais uma vez ao criar o atalho.

20
20
20
2011-11-13 07:15:41 +0000

A solução que utilizo é abrir o prompt de comando abrindo o menu iniciar, digitando ‘cmd’ e premindo Ctrl+Shift+Enter. Isto fará com que o programa seleccionado seja lançado como administrador.

12
12
12
2013-03-10 22:08:33 +0000

Para executar automaticamente CMD como administrador cada vez que é simplesmente clicado (sem ter de clicar com o botão direito do rato ou criar atalhos adicionais), há uma solução fácil para isto:

  1. no Registry Editor , navegue para:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  2. Clique com o botão direito Layers, seleccione Novo* → Valor da corda*. Defina o Nome do seu novo valor de string para o caminho completo para (CMD.EXE) prompt de comando (ou seja, C:\Windows\System32\cmd.exe)

  3. Faça duplo clique no novo valor da string para o modificar, e defina o “Valor de dados” para RUNASADMIN.

Tive o mesmo incómodo, e isto funcionou para mim.

11
11
11
2014-01-04 17:10:28 +0000

Se quiser que o CMD.exe seja sempre executado como administrador, basta adicionar o seguinte código reg ao seu Registo:

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"
4
4
4
2012-07-25 14:31:14 +0000

Houve um par de ferramentas que utilizei e que foram outras soluções de trabalho (para além do que Jesse mencionou).

Quando o Vista saiu pela primeira vez, a Microsoft saiu com um elevate “ powerToy que foi bastante útil e fez o trabalho e ainda, creio (ainda não testado) funciona para o Windows 7. Deixe-o cair no seu ambiente de caminho e poderá executar "elevate iisreset” a partir de um comando normal (ou mesmo “elevate cmd” desde o início/execução ou criar um atalho).

4
4
4
2013-09-25 01:03:59 +0000

A maneira mais fácil de contornar todo o sofrimento da UAC, etc. é configurar uma entrada na Agenda de Tarefas para executar cmd.exe usando os mais altos privilégios. Não criar um evento de Trigger para ele e certificar-se de que a caixa de verificação Permitir que a Tarefa seja Executada a Pedido está seleccionada no separador Definições. Também no separador Definições certificar-se de que a opção “Se a Tarefa já estiver a ser executada, então a seguinte regra aplica-se” está definida para Não Iniciar uma Nova Instância.

Então crie um atalho para isto no seu ambiente de trabalho e execute-o a partir daí, ou através de uma tecla de atalho ou coloque um pino no atalho para a barra de Tarefas.

Já o fiz no meu sistema Windows 7 e funciona perfeitamente.

2
2
2
2013-09-23 10:28:31 +0000

Basta copiar & colar cmd.exe e renomeá-lo como “cmda.exe” na pasta {\system32} (337 KB não é nada de especial…). A opção “correr como administrador” nas propriedades de cmda.exe deixará de estar cinzenta e poderá defini-la para correr sempre como administrador. Agora terá duas ordens de comando: a primeira é regular, a segunda tem um privilégio (a)dmin. É tão fácil de digitar “cmda” na barra de pesquisa Win como o faz com “cmd”!

Para o menu cmd em contexto com privilégio de administrador, assegure-se de que já tem o cmda.exe no lugar, adicione isto no novo ficheiro .reg & lance-o

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\""

Verá duas linhas iguais no menu de contexto (shift); um Prompt de Comando não-elevado e outro com “(Administrador)” adicionado.

É isso…

1
1
1
2013-12-15 03:45:32 +0000

Penso que a maneira mais fácil de correr sempre cmd como administrador é fazer o ficheiro .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"

Colar isso no bloco de notas ou algo do género e guardar como ficheiro .reg. Nota: Isto faz com que o prompt de comando seja executado como admin para todos os utilizadores. Para correr sempre como administrador apenas no seu utilizador basta mudar HKEYLOCALMACHINE para HKEY_CURRENT

1
1
1
2012-07-25 16:59:21 +0000

Criar um atalho para cmd.exe, clicar com o botão direito do rato e seleccionar propriedades, no separador Atalho seleccionar Avançado, assinalar Executar como Administrador.

1
1
1
2015-01-15 09:26:51 +0000

Tudo graças a Jesse Brohinsky

Uma versão mais melhorada. Isto inclui também o directório de fundo que lhe permite abrir ocmd a partir do interior da pasta, assim como o directório de fundo. Também por isso, pode abrir o comandopromt como não administrador.

Também pode desactivar AdminApprovalMode. Desta forma, não precisa de correr como admin quando é admin http://helpdeskgeek.com/windows-7/turn-off-admin-approval-mode-in-windows-7/

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\""
0
0
0
2014-09-23 08:41:15 +0000

Os seguintes trabalhos 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"
:--------------------------------------

receberá a mesma mensagem uac confirmando que o runas admin… o encontrou há algum tempo atrás @ stackexchange

0
0
0
2011-11-13 08:30:56 +0000

A única outra forma, para além do que a Dracs mencionou, é desactivar completamente a UAC