Como iniciar um novo processo sem privilégios de administrador de um processo com privilégios de administrador?
Estou criando um atualizador automático para um aplicativo. O aplicativo é iniciado pelo usuário e é executado sem privilégios de administrador. O autoupdater é iniciado com privilégios de administrador e mata o aplicativo antes de fazer o download dos novos arquivos.
O problema surge quando quero iniciar o aplicativo atualizado depois que o autoupdater é concluído. Se eu uso regular System.Diagnostics.Process.Start (arquivo), o aplicativo inicia com privilégios de administrador também, etem para executar no usuário atual para funcionar como pretendido.
Então, como posso fazer o autoupdater iniciar o aplicativo como o usuário atual em vez do administrador?
Eu tentei usar o seguinte:
var pSI = new ProcessStartInfo() {
UseShellExecute = false,
UserName = Environment.UserName,
FileName = file
};
System.Diagnostics.Process.Start(pSI);
Mas isso gera o erro "Nome de usuário ou senha inválido". Verifiquei se o nome de usuário está correto e entendo que a senha provavelmente é inválida, pois não a incluí. Mas não é uma opção pedir ao usuário que insira sua senha, uma vez que todo o motivo para iniciar o aplicativo automaticamente é facilitar para o usuário.
Alguma sugestão?