Funcionalidade estranha de Runas com linha de comando

0

Eu tenho um arquivo .bat que uso para iniciar alguns programas. Alguns deles requerem privilégios elevados (por exemplo, um cheque devcon -based-device-exist), mas outros não. Portanto, executo o .bat como administrador e uso o comando runas para executar os outros.

runas /trustlevel:0x20000 "C:\Folder\foo.exe"
runas /trustlevel:0x20000 "C:\Folder\bar.exe"

Isso funciona para alguns programas. No entanto, para alguns, esta mensagem de erro (traduzida do finlandês por si mesma, pode ser ligeiramente diferente em inglês):

ERROR: Can not execute - bar.exe
740: The requested operation requires elevation.

A parte estranha é, se eu criar este .bat :

@echo off
start "" "bar.exe"

e executá-lo com runas , funciona como um encanto. Sua combinação

runas /trustlevel:0x20000 "start \"\" \"C:\Folder\bar.exe\""

não funciona, porque start não é um arquivo. O que causaria isso?

Atualização: Eu tentei outro comando e funcionou.

runas /trustlevel:0x20000 "cmd /c start \"\" \"C:\Folder\bar.exe\""

Mas , o que eu quero saber é não como fazer funcionar mas por que isso acontece .

Atualização 2: Conforme sugerido nos comentários de and31415 essa é uma diferença entre foo.exe e bar.exe . Mas deve haver uma diferença entre as formas de executá-las, pois os resultados são diferentes; essa diferença é o que eu estou procurando.

Atualização 3: Eu verifiquei os manifestos dos programas usando o Editor de recursos e aqui estão eles. Parece que eles têm o mesmo nível de execução ( asInvoker , que é o nível de usuário mais baixo).

Osuperiorébar.exeeoinferioréfoo.exe.(Eusei,ocaminhoerrado:D)

Atualização4:Confirmadoparatambémocorrercompsexecdopromptdecomandoelevado:

psexec-l-ibar.exe

recebeumerro,

psexec-l-icmd/Cstart"" "bar.exe"

funciona.

    
por Pietu1998 24.02.2014 / 14:04

0 respostas