Executar como usuário diferente e elevar

24

No Windows Explorer, posso clicar com o botão direito do mouse em um arquivo executável e escolher 'Executar como administrador', que iniciará o processo selecionado com privilégios elevados, ou posso clicar com o botão direito do mouse no arquivo executável e clicar em 'Executar como usuário diferente', especifique a opção nome de usuário e senha que iniciarão o processo com privilégios padrão usando o contexto de usuário especificado.

Como executo como um usuário diferente E executo em um contexto elevado? Um exemplo perfeito disso seria abrir um prompt de comando elevado usando um contexto de usuário diferente do usuário conectado no momento.

Arte
fonte
Eu acho que o PowerShell start-processpode ser capaz de fazer isso.
jiggunjer

Respostas:

22

Eu não acho que essa opção exista.

Como solução alternativa, você pode iniciar a linha de comando como administrador e executar o seguinte comando para executar a linha de comando com privilégios de administrador como outro usuário.

runas / netonly / user: YourUser cmd.exe

Yass
fonte
7
Ou clique com o botão direito do mouse no executável, selecione propriedades> compatibilidade e, em seguida, selecione Nível de privilégio e marque Executar este programa como administrador. Em seguida, clique com o botão direito do mouse no executável e execute como um usuário diferente.
21413 JamesTheDev
@NewProgrammerJames agradável, graças à entrada :)
Yass
@NewProgrammerJames Esse truque não funciona com o CMD diretamente no W2008R2 e versões posteriores, mas ajustar um aplicativo personalizado deve ser possível.
Vesper
Isso funcionará mesmo se o usuário final não estiver no grupo de administradores?
jiggunjer
@jiggunjer Não, até onde eu sei.
Yass
11

Sim, o psexec faz isso absolutamente.

O exemplo a seguir funciona corretamente no Windows 8.1; execute o prompt de comando como administrador e:

// -i makes the app interactive
// -h elevates the execution context 
// Omitting the password forces a secure prompt
psexec -u DOMAIN\user -i -h "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe"
Paul Smith
fonte
De Mike : Isso funciona para o Windows 10!
fixer1234
7

Você pode fazer isso através do PowerShell:

Start-Process powershell -Credential domain\differentUserName -ArgumentList '-noprofile -command &{Start-Process "TheApp.exe" -verb runas}'
Darío León
fonte
1

Percebo que esta é uma pergunta muito antiga, mas as respostas dadas não são ideais e já foram necroídas. Todas as respostas existentes requerem digitar comandos arcaicos e conhecer o caminho exato para o seu executável. Uma opção ideal tornaria isso possível usando o mesmo processo que você já usa para escalação de privilégios.

Se você possui uma edição não doméstica do Windows (Vista a 10), pode usar o Security Policy Manager para solicitar que você forneça sua senha sempre que ocorrer elevação. Também oferece a opção de selecionar um usuário completamente diferente e inserir sua senha ... o que fará com que o processo elevado seja executado como ele.

Basta abrir o menu Iniciar, digite secpol.msce pressione Enter para iniciá-lo (se estiver disponível). Você está procurando Local Policies> Security Options> User Account Control: Behavior of the elevation prompt for administrators in Admin Approval Mode> Prompt for credentials. O Vista tem uma opção semelhante que não menciona "Modo de aprovação de administrador", mas faz a mesma coisa.

Eu acho que essa é uma opção muito mais natural do que a outra oferecida aqui e lembra bastante o gksudo no * nix. Mas se a sua edição do Windows não incluir o secpol.msc, será necessário fazer uma invasão no registro para habilitá-lo.

Cliff Armstrong
fonte
Eu fiz isso e não funciona. E sempre pede minha impressão digital, embora eu não configure minha autenticação de impressão digital.
Iroel
@iroel Isso parece distinto, pois há um problema de configuração nos subsistemas de autenticação do Windows. Você deve procurar na SU uma solução para esse problema e, se não encontrar nada, postá-la como uma pergunta. Todos os meus sistemas estão configurados dessa maneira e nenhum deles solicita uma impressão digital. Dependendo da conta, estou me autenticando, pois eles solicitam uma senha ou um número PIN.
Cliff Armstrong #
Eu uso impressão digital para autenticação. Isso acontece. 2 soluções aplicáveis: faça com que o usuário tenha privilégios administrativos (mas não faz sentido nesse caso), crie outro usuário e defina a impressão digital (use o dedo que não está registrado para determinado usuário) e use esse dedo quando for solicitado privilégio. Eu uso a última solução neste caso. Pelo menos funciona para mim.
Iroel 5/06
Se for solicitada uma impressão digital, você configurou o usuário no qual está tentando fazer login para exigir uma impressão digital ou algo está errado com a instalação do Windows. Ponto final. Eu uso essa configuração em três computadores diferentes e nenhum deles pede impressões digitais. Eu configurei isso em dezenas de computadores para clientes. O Windows solicitará um número de pino ao fazer login em um usuário com um número de pino configurado e uma senha para todos os outros usuários. Ele usa qualquer método de autenticação que você configurou para esse usuário.
Cliff Armstrong
0

Descobri que, se eu fizer logon como a conta Executar como, você poderá definir o sinalizador "executar este programa como administrador" na página de propriedades / compatibilidade. Em seguida, faça logon na conta secundária e execute o turno, clique em Executar, pois será aberto como administrador.

Alan Thompson
fonte
Parecia uma ótima opção, mas não havia uma página de compatibilidade nas propriedades do cmd.exe.
Sandra