Usando runas para executar o netsh como administrador

1

Estou tentando fazer algumas depurações para um fornecedor em uma máquina com Windows 7. Eu preciso executar netsh para definir um parâmetro. Eu tentei executá-lo a partir de uma janela do cygwin / shell, mas recebo uma falha de "Executar como administrador".

Pesquisando, vejo que há um comando runas que parece funcionar como sudo . Como minha conta de usuário ( me ) é um administrador, tento runas /user:me "netsh ..." Recebo uma solicitação para a senha de me ; Eu entro; netsh (presumivelmente em execução em uma nova janela cmd ) pisca aberto e fechado; e recebo um retorno bem-sucedido do comando (por exemplo, $? == 0).

Mas, aparentemente, isso não é bom o suficiente, já que o parâmetro não foi alterado. Eu finalmente consegui fazer isso "executando como administrador" em um atalho para o shell (e depois executei netsh normalmente).

Qual é o truque para fazer com que o Windows / runas perceba que me é realmente um administrador?

    
por jhfrontz 26.02.2013 / 19:15

1 resposta

1

Há uma diferença entre ter feito login em uma conta que faz parte do grupo de administradores e executar (a) elevada ou (b) como a conta interna Administrador.

Sempre que você é Administrador, você está sempre elevado - por definição. Então, se você run /user:administrator esta janela será elevada quando for aberta, você NÃO receberá um prompt do UAC e o comando netsh deverá ser executado.

Mas como a conta de Administrador incorporada sempre é executada de forma elevada e não gera avisos do UAC a partir de runas , é um risco de segurança, especialmente se ela não tiver uma senha. É por isso que a Microsoft desabilita a conta de Administrador por padrão e exige que você habilitar primeiro:

In Windows® 7, the built-in administrator account is disabled by default. In previous versions of Windows, an Administrator account was automatically created during Out-of-Box-Experience (OOBE) with a blank password.

An Administrator account with a blank password is a security risk. To better protect the system, the built-in Administrator account is disabled by default in all clean installations and upgrades of Windows 7.

Veja como você o habilita. (Você pode abrir o MMC digitando "mmc" na caixa "Executar ..." no menu Iniciar).

Change the properties of the Administrator account by using the Local Users and Groups Microsoft Management Console (MMC).

  1. Open the MMC console and select Local Users and Groups.
  2. Right-click the Administrator account and select Properties.
  3. The Administrator Properties window appears.
  4. On the General tab, clear the Account is Disabled check box.
  5. Close the MMC console.

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ê deseja executar um comando elevado em seu próprio ID do usuário ou se quiser passar argumentos, é necessário ter um sudo ou su genuíno (como este , parte da minha concha Hamilton C :) com um interlúdio marcado no manifesto do aplicativo como exigindo elevação. Se você fizer dessa maneira, você verá um prompt do UAC.

    
por 26.02.2013 / 19:50