Executar como um usuário diferente sem uma senha em um prompt elevado no Windows

13

Existem vários utilitários para ser executado como um usuário diferente (por exemplo: runas, cpau, psexec), mas todas elas requerem a senha para o respectivo usuário, mesmo se você já está rodando com privilégios elevados.

Eu gostaria de conseguir o seguinte:

  1. Eu já tenho um prompt elevado ( Administrator)
  2. Eu gostaria de executar um comando (por exemplo :) calc.execomo johnsem digitar / passar sua senha para o utilitário iniciador.

Por exemplo, no sistema Unix, você pode apenas:

root@server:~# su - john
Razvan
fonte

Respostas:

3

Eu uso isso o tempo todo. É necessário inserir uma credencial na primeira vez em que é usada (e quando a senha é alterada), mas é isso.

runas /user:yourusernamehere /savecred "Your Executable Here"

Se você salvar este comando como parte de um arquivo bat, poderá criar um atalho que o iniciará com direitos administrativos usando um destino como o seguinte.

C:\Windows\System32\cmd.exe /c "C:\yourbatfilehere.bat"
Tim Brigham
fonte
3
Obrigado pela dica, mas infelizmente / savecred não é aplicável no meu caso, porque 1) as credenciais do usuário podem mudar E 2) os comandos a serem executados são gerados dinamicamente (então eu teria que digitar a senha para cada comando). Além disso, isso deve ser executado em segundo plano, sem nenhuma interação do usuário.
Razvan
@Razvan, você pode agrupar seus comandos em um arquivo de script, desde que o nome seja o mesmo, seus comandos possam mudar facilmente. Quanto à alteração das credenciais ... você precisa passar credenciais novas em uma cópia em cache. Não há uma terceira opção.
Tim Brigham
3

Não, não é possível no Windows. Você sempre precisa digitar uma senha pelo menos uma vez ao executar aplicativos em uma conta de usuário diferente. Mesmo como administrador.

Impede que coisas engraçadas aconteçam e permite uma auditoria limpa. Se algo acontecer em uma conta de usuário, os usuários não poderão culpar os administradores por fazê-lo sem o consentimento deles.

Daniel
fonte
Mas isso é uma limitação técnica? Eu poderia pensar que talvez alguns arquivos de usuário relevantes necessários para estabelecer uma nova sessão sejam criptografados usando as credenciais do usuário, por isso seria impossível obter uma nova sessão sem fornecer as respectivas credenciais (é apenas um palpite).
Razvan
Eu não entendo o seu comentário. É uma limitação técnica no sentido de que a Microsoft decidiu planejar o Windows da maneira que você não pode se passar por uma conta de usuário sem saber sua senha. O porquê e como não importa. Sua única opção é inserir a senha ou aceitar que você não pode se passar por uma conta sem ela.
Daniel
1
@Daniel, você poderia fornecer algum link de referência para sua alegação de que esta é uma decisão estratégica e deliberada?
ivan_pozdeev
Não existe uma ACL para permitir isso?
RandomInsano
3

No Windows, você só pode fazer isso se houver uma sessão de logon atual do usuário que você está tentando representar. Isso ocorre devido à política de grupo local "Representar um cliente após autenticação", que permite que os membros do grupo de Administradores façam exatamente isso (encontrado em Políticas Locais> Atribuições de Direitos do Usuário).

Uma ferramenta que eu sei que permite fazer isso é o Process Hacker 2. Execute a ferramenta como administrador local e encontre um processo que esteja sendo executado como o usuário que você deseja representar. Clique com o botão direito do mouse, selecione Misc> Executar como este usuário ... e digite o caminho binário que deseja executar como esse usuário, por exemplo cmd. O CMD abriria como esse usuário sem solicitar a senha do usuário.

Rico
fonte
-3

Se você colocar o .exe na pasta de inicialização, poderá executá-lo como eles.

KevinKTI
fonte
2
elaborando: você não está executando como eles ... você está fazendo com que eles executem para você.
KevinKTI
2
Como o usuário digitaria sua senha ao fazer o login, isso não parece responder à pergunta.
pintainhos