Czasami zachodzi potrzeba wykonania jakiegoś działania na obiektach do których obecnie zalogowany użytkownik nie ma uprawnień. Rozwiązaniem tego problemu jest elewacja uprawnień procesu.
Niestety nie jest możliwa elewacja uprawnień procesu z którego chcemy wykonać kod, stąd konieczne jest wystartowanie całkiem nowego procesu z parametrem sugerującym systemowi elewację uprawnień (gdy UAC jest wyłączone) lub wyświetlenie komunikatu z prośbą o zalogowanie na konto administracyjne (gdy UAC działa).
We wpisie mała ściągawka jak to zrobić.
ProcessStartInfo info = new ProcessStartInfo(@"C:\proces_do_uruchomienia.exe"); info.Verb = "runas"; Process process = new Process(); process.StartInfo = info; process.Start();
Jak możecie zauważyć start procesu z wyższymi uprawnieniami różni się od normalnego uruchomienia procesu jedynie określeniem parametru Verb na runas, wszystkie pozostałe rzeczy działają bez zmian.
Dodaj komentarz