Podnieś działający program do administratora (Windows 7)

35

Czasami możesz otworzyć program, który chcesz uruchomić jako administrator, ale być może już go nie otworzyłeś jako administrator. Czy można podnieść uprawnienia już uruchomionego programu w systemie Windows 7, czy też muszę go zamknąć i zrestartować jako administrator?

Casebash
źródło
8
sudo na zwycięstwo!
Josh K
1
@Josh K - er - Jak podnieść już uruchomioną aplikację sudo?
Sathyajith Bhat
To magiczne, trzeba by rozszyfrować, man sudoaby uzyskać więcej informacji.
Josh K
2
@Josh, jeśli nic więcej, zawsze możesz użyć pseudo;)
Tomas Aschan

Odpowiedzi:

26

Niestety nie. Działającego procesu nie można podwyższyć do uprawnień administratora. Szukam bardziej wiarygodnego źródła, ale na razie znalazłem:

  1. „Nie można podnieść programów, które zostały już uruchomione ...”

  2. „Kod można podwyższyć tylko na poziomie procesu podczas uruchamiania, co oznacza, że ​​nie można podwyższyć działającego procesu”.

Stephen Jennings
źródło
1
To absolutnie nieprawda. Interfejs API win32 obsługuje podniesienie uprawnień dowolnych aplikacji, które są już uruchomione, chociaż aplikacja musi ujawniać samą funkcjonalność.W tym artykule i towarzyszącym mu kodzie źródłowym pokazano, jak to osiągnąć. Jest możliwe, że można napisać aplikację, aby wybrać i podnieść inne procesy ...
Fopedush,
8
@Fopedush Chociaż w tym artykule opisano tę technikę jako „samowynoszącą się”, te przykładowe programy wydają się faktycznie uruchamiać nową instancję procesu przy użyciu ShellExecuteExi czasownika „runas”. Nie sądzę, żeby spełniało to wymaganie OP do podniesienia programu, który już działa (na przykład straci cały swój stan).
Stephen Jennings,
gdy nie podniesiona instancja Total Commander 8.01 jest blokowana w operacji takiej jak kopiowanie do podfolderu plików programu, oferuje możliwość „ponownej próby jako administrator”. Czy nie można tego rozszerzyć na „obce” (nie własne) procesy?
n611x007
3
@ anxa Nie korzystałem z Total Commander, ale chętnie postawię na opcję „ponów próbę jako administrator”, która w rzeczywistości tworzy całkowicie odrębny proces z podwyższonym poziomem uprawnień, który wykonuje uprzywilejowaną pracę. Process Explorer robi to, gdy wybierzesz „Pokaż szczegóły dla wszystkich procesów”, uruchamia nową podniesioną kopię samego siebie i zamyka nieużywaną kopię. W takim przypadku należy specjalnie napisać programy, aby wiedzieć, jak poprawnie uruchomić drugi proces.
Stephen Jennings,
1
@StephenJennings Masz całkowitą rację - próbka kodu, którą podłączyłem, w rzeczywistości uruchamia się ponownie za pomocą komendy runas. Przed komentowaniem powinienem sprawdzić kod oprócz artykułu. Miałem wrażenie, że interfejs API WIN32 ujawnił jakiś mechanizm elewacji - ale być może źle pamiętam. Wykopię i opublikuję ponownie, jeśli uda mi się znaleźć to, o czym myślałem.
Fopedush,