Jak rozpocząć nowy proces bez uprawnień administratora z procesu z uprawnieniami administratora?

Tworzę automatyczny aktualizator dla aplikacji. Aplikacja jest uruchamiana przez użytkownika i działa bez uprawnień administratora. Autoupdater jest uruchamiany z uprawnieniami administratora i zabija aplikację, zanim pobierze nowe pliki.

Problem pojawia się, gdy chcę uruchomić zaktualizowaną aplikację po zakończeniu autoupdater. Jeśli używam zwykłego pliku System.Diagnostics.Process.Start (plik), aplikacja zaczyna również z uprawnieniami administratora i toma uruchomić na bieżącym użytkowniku, aby działał zgodnie z przeznaczeniem.

Jak więc sprawić, by autoupdater uruchamiał aplikację jako bieżący użytkownik zamiast administratora?

Próbowałem użyć następujących:

var pSI = new ProcessStartInfo() { 
    UseShellExecute = false, 
    UserName = Environment.UserName, 
    FileName = file 
};
System.Diagnostics.Process.Start(pSI);

Ale powoduje to błąd „Nieprawidłowa nazwa użytkownika lub hasło”. Sprawdziłem, czy nazwa użytkownika jest poprawna i rozumiem, że hasło prawdopodobnie jest nieprawidłowe, ponieważ go nie uwzględniłem. Nie jest jednak możliwe, aby poprosić użytkownika o wprowadzenie hasła, ponieważ cały powód automatycznego uruchomienia aplikacji jest ułatwiony dla użytkownika.

Jakieś sugestie?

questionAnswers(9)

yourAnswerToTheQuestion