Próbuję zainstalować usługę za pomocą InstallUtil.exe, ale została wywołana za pośrednictwem Process.Start
. Oto kod:
ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath);
System.Diagnostics.Process.Start (startInfo);
gdzie m_strInstallUtil
jest w pełni kwalifikowaną ścieżką i plikiem exe do „InstallUtil.exe” oraz strExePath
w pełni kwalifikowaną ścieżką / nazwą do mojej usługi.
Uruchamianie składni wiersza poleceń z wiersza polecenia z podwyższonym poziomem uprawnień działa; uruchamianie z mojej aplikacji (przy użyciu powyższego kodu) nie działa. Zakładam, że mam do czynienia z problemem podniesienia uprawnień procesu, więc jak uruchomić proces w stanie podwyższonym? Czy muszę na to patrzeć ShellExecute
?
To wszystko w systemie Windows Vista. Uruchamiam proces w debugerze VS2008 z uprawnieniami administratora.
Próbowałem też ustawić, startInfo.Verb = "runas";
ale to nie rozwiązało problemu.
startInfo.UseShellExecute = true;
opróczstartInfo.Verb = "runas";
tego działało dobrze dla mnie.