Executar como administrador da linha de comando no Windows 8

10

Estou tentando executar o Bloco de Notas como administrador para poder editar meu arquivo de hosts na linha de comando.

Eu tentei runas /user:(myusername)\administrator "notepad c:\windows\system32\drivers\etc\hosts" depois insiro minha senha e recebo

RUNAS ERROR: Unable to run - notepad c:\windows\system32\drivers\etc\hosts 1327: Account restrictions are preventing this user from signing in. For example: blank pa sswords aren't allowed, sign-in times are limited, or a policy restriction has been enforc ed.

PS: Sei que, se der permissão para minha conta de usuário, posso editá-la sem executá-la como administrador. Mas eu gostaria de saber como fazer isso sem ter que alterar as permissões no arquivo hosts.

    
por Kirill Fuchs 17.02.2013 / 19:43

3 respostas

7

Ok, a razão não funciona no modelo de segurança do Windows Vista e mais recente.  Uma conta no grupo de administradores ainda executa tudo que não é explicitamente elevado como um usuário limitado. A exceção é a conta Administrator , que executa tudo elevado. Por esse motivo, geralmente é considerado ruim usar como sua conta de login e é normalmente desativado.

Você pode ativá-lo e, em seguida, runas invocar como essa conta. Isso apresenta alguns problemas - agora você está executando com o ambiente de um usuário diferente, que pode ter diferentes variáveis de ambiente definidas. 1

A melhor maneira de fazer isso seria realmente elevar como seu usuário atual via UAC. Infelizmente, o prompt de comando padrão não inclui esse recurso, mas os programas de terceiros e o PowerShell e o WSHell (VBScript) integrados podem fazê-lo.

Aproveitando a minha outra resposta , você pode chamar o comando do PowerShell diretamente com powershell -c :

powershell -c start -verb runas notepad C:\Windows\System32\drivers\etc\hosts

que basicamente diz ao PowerShell para executar o seguinte ( start é aliased para Start-Process ):

Start-Process -Verb "runas" notepad C:\Windows\System32\drivers\etc\hosts

O truque aqui é passar o verbo runas , acionando o UAC.

Nem Start-Process -Verb runas nem o padrão cmd runas passarão a corrente diretório de trabalho , então sempre use o caminho completo em qualquer comando que você elevar dessa maneira.

Observe também que alguns argumentos como -c podem colidir com Start-Process argumentos, então a maneira mais segura é:

powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'"

1 Nota: isso só se aplica às variáveis de ambiente do usuário . Variáveis de ambiente definidas em um processo pai não são repassados pelo UAC ! Isso também se aplica a runas , e é ainda pior porque você não terá nem mesmo as versões corretas do usuário.

    
por 24.01.2014 / 14:41
11

Provavelmente, você ainda não ativou a conta de administrador.

Aqui estão as instruções para ativar a conta do administrador .

Você também encontrará mais informações sobre runas em o site da Microsoft.

    
por 17.02.2013 / 20:21
-1

Uma coisa que você pode tentar é abrir o prompt de comando como administrador e executar o bloco de notas por lá. Apenas digite Notepad . Depois de fazer isso, você pode clicar em arquivo, abrir e navegar até o arquivo hosts e abri-lo. Finalmente, você pode salvar como normal.

    
por 26.03.2018 / 19:01