Sim, é executado com privilégios elevados.
Teste simples:
Você pode testar isso com bastante facilidade abrindo um prompt de comando elevado e um não elevado. Execute o comando notepad.exe
em ambos e tente salvar um arquivo de texto em branco em C:\Windows
. Um salvará, um lançará um erro de permissão.
Teste completo:
Se isso não for suficiente para confirmar isso (você não me satisfaz), você pode usar AccessChk da SysInternals. Você precisará executá-lo a partir de um prompt de comando elevado.
Vamos começar verificando os dois processos do Bloco de Notas em execução:
Bloco de notas: ( accesschk.exe -v -p notepad
)
[11140] notepad.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW DOMAIN\Tannerf
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[11004] notepad.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
Um está sendo executado sob o nome de usuário do meu domínio, o outro está sendo executado no grupo interno Administradores. Ele também tem um alto nível obrigatório . Você também pode executar com o sinalizador -f
para um detalhamento dos privilégios e tokens.
arquivos MSIExec e MSI
Eu achei que as coisas poderiam ficar um pouco mais complicadas ao executar msiexec
. Eu tenho um instalador autônomo do Google Chrome que foi útil para testar.
msiexec.exe inicia o instalador do Chrome a partir do prompt elevado:
D:\Users\tannerf>accesschk.exe -p msiexec.exe
[10540] msiexec.exe
RW BUILTIN\Administrators
RW NT AUTHORITY\SYSTEM
chrome_installer.exe gerado pelo MSI:
D:\Users\tannerf>accesschk.exe -p chrome_installer.exe
[5552] chrome_installer.exe
NT AUTHORITY\SYSTEM
OWNER RIGHTS
RW NT SERVICE\msiserver
Não tão cortado e seco mais! Parece que um chrome_installer.exe
processa foi executado pelo serviço MSIServer.
Isso me faz pensar sobre o comportamento que outros instaladores podem ter, então eu corri um Evernote.msi que eu tinha à mão:
msiexec.exe elevado que inicia um instalador do Evernote:
[6916] msiexec.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[4652] msiexec.exe
System Mandatory Level [No-Write-Up, No-Read-Up]
R BUILTIN\Administrators
PROCESS_QUERY_INFORMATION
PROCESS_QUERY_LIMITED_INFORMATION
Interessante; Há um msiexec.exe que é executado no nível do sistema neste momento. Eu usei o Process Monitor para descobrir que a janela de instalação real que aparece vem do processo msiexec no nível do sistema. Matar o alto nível obrigatório também eliminou o processo no nível do sistema.
msiexec.exe não elevado que está iniciando um instalador do Evernote:
[7472] msiexec.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW DOMAIN\Tannerf
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[4404] msiexec.exe
System Mandatory Level [No-Write-Up, No-Read-Up]
R BUILTIN\Administrators
PROCESS_QUERY_INFORMATION
PROCESS_QUERY_LIMITED_INFORMATION
Parece que o Evernote terá acesso ao nível do sistema de qualquer maneira. Clicar duas vezes no instalador tem o mesmo resultado.
Conclusão:
Acho que ficou bem demonstrado que um processo herdará as permissões, a menos que seja especificado de outra forma. Isso não garante que msiexec SomeProgram.msi
seja executado com um alto nível obrigatório em todos os processos processos; ele pode ser executado no nível do sistema ou no MSIServer. Sua milhagem pode variar, e eu não ficaria surpreso em ver muitos casos em que essas regras parecem estar "quebradas".