Estou tentando fazer alguma depuração para um fornecedor em uma máquina com Windows 7. Preciso executar netsh
para definir um parâmetro. Tentei executá-lo a partir de uma janela cygwin/shell, mas obtive uma falha "Executar como administrador".
Pesquisando no Google, vejo que há um runas
comando que parece funcionar como sudo
. Como minha conta de usuário ( me
) é administrador, tento runas /user:me "netsh ..."
receber uma solicitação de me
senha de '; Eu entro; netsh
(presumivelmente em execução em uma nova cmd
janela) pisca aberto e fechado; e obtenho um retorno bem-sucedido do comando (ou seja, $? == 0).
Mas aparentemente isso não é bom o suficiente, já que o parâmetro permaneceu inalterado. Finalmente resolvi isso executando "executar como administrador" em um atalho para o shell (e depois executei netsh
normalmente).
Qual é o truque para fazer o Windows runas
perceber que me
realmente é um administrador?
Responder1
Há uma diferença entre estar conectado a uma conta que faz parte do grupo de administradores e executar (a) elevado ou (b) como a conta interna de Administrador.
Sempre que você executa como Administrador, você está sempre elevado – por definição. Portanto, se run /user:administrator
essa janela for elevada ao abrir, você NÃO receberá um prompt do UAC e o netsh
comando deverá ser executado.
Mas como a conta interna do Administrador sempre é elevada e não gera prompts do UAC runas
, é um risco de segurança, especialmente se não tiver uma senha. É por issoA Microsoft desativa a conta de administrador por padrãoe requer que você o habilite primeiro:
No Windows® 7, a conta de administrador integrada está desabilitada por padrão. Nas versões anteriores do Windows, uma conta de administrador era criada automaticamente durante a experiência inicial (OOBE) com uma senha em branco.
Uma conta de administrador com uma senha em branco é um risco à segurança. Para proteger melhor o sistema, a conta interna do Administrador está desabilitada por padrão em todas as instalações limpas e atualizações do Windows 7.
Veja como você o habilita. (Você pode abrir o MMC digitando "mmc" na caixa "Executar..." no menu Iniciar.)
Altere as propriedades da conta Administrador usando o Console de Gerenciamento Microsoft (MMC) de Usuários e Grupos Locais.
- Abra o console MMC e selecione Usuários e grupos locais.
- Clique com o botão direito na conta Administrador e selecione Propriedades.
- A janela Propriedades do administrador é exibida.
- Na guia Geral, desmarque a caixa de seleção Conta desativada.
- Feche o console MMC.
Além disso, esteja ciente de que runas
NÃO permite que você passe argumentos para o programa que você executa:
RUNAS USAGE:
RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
/user:<UserName> program
RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
/smartcard [/user:<UserName>] program
RUNAS /trustlevel:<TrustLevel> program
Se você quiser executar um comando elevado sob seu próprio ID de usuário ou se quiser passar argumentos, você precisa de um sudo
ou genuíno su
(comoEste, parte da minhaConcha Hamilton C:) com um interlúdiomarcado no manifesto do aplicativocomo exigindo elevação. Se você fizer dessa forma, verá um prompt do UAC.