Comando Runas para usuário sem senha

9

Eu quero usar o comando runas no CMD e dos arquivos em lote para obter permissões elevadas, mas não tenho uma senha de administrador no meu PC porque é o meu computador doméstico e eu sou o único usuário. Toda vez que tento usar o comando runas, ele me pede uma senha, depois me diz que as senhas em branco não são permitidas, há alguma maneira de contornar isso? Eu sei que posso apenas clicar com o botão direito e selecionar executar como administrador, mas eu prefiro ter um comando que possa fazer isso, pois nem sempre é uma opção, e é um pouco trabalhoso.

Eu poderia estar cometendo algum erro básico, já que não tenho muita experiência com o prompt de comando, mas não estou completamente sem noção.

    
por user156558 05.09.2012 / 22:43

5 respostas

12

Como este é um ambiente doméstico, estou um pouco menos nervoso com essa resposta. Você deve ler as notas da política que vou mencionar para entender quais são as implicações.

Ir para o começo | Corre. Digite secpol.msc e pressione Enter. Navegue até Políticas locais e depois Opções de segurança. Encontre a política que diz Contas: Limite o uso de senhas em branco da conta local ao logon de console somente . Defina como desativado.

    
por 05.09.2012 / 22:58
4

Você pode usar o VBScript para elevar comandos:

Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "cmd.exe", "", "", "runas", 1 

Salvar como *.vbs e, em seguida, iniciá-lo com cscript ou wscript

    
por 06.09.2012 / 02:37
3

Acredito que você pode usar o PSexec.exe da SysInternal para forçar a elevação.

Você pode tentar, por exemplo, executar isto: psexec \%computername% -i -h notepad.exe

    
por 05.09.2012 / 23:41
3

Como você descobriu, o runas não permite executar um comando elevado, apenas como um usuário diferente.

A elevação acontece quando você tenta iniciar um executável marcado como exigindo elevação, causando o prompt do UAC. Não é apenas uma opção no CreateProcess. Portanto, se você estiver executando uma cópia não elevada do cmd e desejar que ele execute outro comando comum, mas faça com que ele seja executado de forma elevada, será necessário um comando de interlúdio que possa executá-lo para você, mas esteja marcado para elevação. É complicado pelo fato de que os diretórios atuais e variáveis de ambiente não são herdados pelo filho elevado.

O comando su incluído com minha shell Hamilton C (divulgação completa: sou o autor) tem uma opção sudo que resolve isso e aqui está como eu fiz: Quando você solicita ao su para executar um comando elevado, ele inicia um cópia de si armazenada como elevate.exe marcada para elevação. elevar, em seguida, handshakes através da memória compartilhada com su para passar os argumentos da linha de comando, diretórios atuais e ambiente através do limite de elevação e, em seguida, elevar executa o comando.

    
por 06.09.2012 / 04:31
0

Corri em RunAsSpc que executará o comando RunAs, mas inclui a capacidade de ler / escrever com um código criptografado sua senha não está exposta.

O autor afirma que esses requisitos são atendidos usando RunAsSpc

  • O usuário não precisa digitar uma senha, como runas.
  • Apenas os aplicativos permitidos por mim podem ser iniciados pelo usuário.
  • A ferramenta não deve ser contornada simplesmente renomeando o nome do aplicativo ou salvando a identificação (por exemplo, runas / savecred)
  • Deve ser simples de lidar.
por 18.09.2014 / 06:45