Comando Runas para usuário sem senha

9

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

Eu poderia estar cometendo algum tipo de erro básico, pois não tenho muita experiência com o prompt de comando, mas não sou completamente ignorante.

user156558
fonte

Respostas:

13

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.

Vá para Iniciar | Corre. Digite secpol.msce pressione Enter. Navegue para Políticas locais e Opções de segurança. Encontre a política que diz Contas: Limite o uso de senhas em branco na conta local apenas para o logon do console . Defina-o como desativado.

Patrick Seymour
fonte
+1 por não dizer a eles para simplesmente desabilitar o UAC. Pelo menos eles estão deixando isso ativado!
Mark Allen
4

Você pode usar o VBScript para elevar comandos:

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

Salve como *.vbse, em seguida, inicie-o com cscriptouwscript

surfasb
fonte
Bom truque. obter +1
Jet
3

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

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

Mark Allen
fonte
Bom truque. Também funcionará sem esse último parâmetro "1".
Jet
Esse é um "eu" minúsculo, não um 1, ele força o que você está executando a executar de maneira interativa; caso contrário, ele gosta de rodar em uma sessão sem cabeça e você fica decepcionado se perguntando para onde foi o seu bloco de notas. :) (Estive lá, fiz isso.) Pode muito bem não ser necessário quando você o executa na máquina em que está conectado, ainda não tentei.
Mark Allen
3

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

A elevação ocorre quando você tenta iniciar um executável que foi 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 que seja elevado, será necessário um comando de interlúdio que possa executá-lo, mas que esteja marcado para elevação. É complicado pelo fato de os diretórios e variáveis ​​de ambiente atuais não serem herdados pelo filho elevado.

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

Nicole Hamilton
fonte
0

Corri através do RunAsSpc que executará o comando RunAs, mas inclui a capacidade de ler / gravar com um criptografado para que sua senha não seja exposta.

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

  • O usuário não precisa digitar uma senha, como runas.
  • Somente os aplicativos permitidos por mim podem ser iniciados pelo usuário.
  • A ferramenta não deve ser ignorada simplesmente renomeando o nome do aplicativo ou salvando a identificação (por exemplo, runas / savecred)
  • Deve ser simples de manusear.
Sol
fonte
0

Você pode usar o suutilitário. Eleva através do UAC. Você pode baixá-lo aqui .

VEG
fonte