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?