Proces uruchamiania .NET z wyższymi prawami
Próbuję uruchomić program z prawami administratora za pośrednictwem aplikacji C #, która jest wywoływana tylko z prawami użytkownika.
Kod
<code> ProcessStartInfo psi; try { psi = new ProcessStartInfo(@"WINZIP32.EXE"); psi.UseShellExecute = false; SecureString pw = new SecureString(); pw.AppendChar('p'); pw.AppendChar('a'); pw.AppendChar('s'); pw.AppendChar('s'); pw.AppendChar('w'); pw.AppendChar('o'); pw.AppendChar('r'); pw.AppendChar('d'); psi.Password = pw; psi.UserName = "administrator"; Process.Start(psi); } catch (Exception ex) { MessageBox.Show(ex.Message); } </code>
Uruchamia winzip, ale tylko z prawami użytkownika. Czy jest coś, co robię źle, czy może nawet rozpocząć proces z wyższymi prawami?
Dziękuję Ci!
Edytuj: Oto powód pytania, może pomaga zrozumieć, czego naprawdę potrzebuję.
Użyłem na przykład winzip, aby uzyskać ogólne pojęcie o tym, co jest nieprawidłowe w moim kodzie. Rzeczywisty problem polega na tym, że nasza firma korzysta z 2 wersji programu. Zanim jednak uruchomisz którąkolwiek z wersji, musisz zaimportować plik DLL z regsvr32 (z prawami administratora). Teraz chciałbym napisać program, który pozwoli użytkownikowi wybrać wersję, zaimportować bibliotekę DLL i uruchomić poprawną aplikację.