Підвищити запущену програму до адміністратора (Windows 7)


35

Іноді ви можете відкрити програму, яку ви хочете запустити як адміністратор, але ви, можливо, вже відкрили її не як адміністратор. Чи можливо підвищити привілеї вже запущеної програми в Windows 7 або мені потрібно закрити і перезапустити як адміністратор?


8
судо на виграш!
Джош К

1
@Josh K - er - Як можна підняти вже запущений додаток за допомогою sudo?
Сатьядхіт Бхат

Це магічно, вам доведеться розшифрувати man sudoдля отримання додаткової інформації.
Джош К

2
@Josh, якщо нічого іншого, завжди можна використовувати pseudo;)
Томаш Ашан

Відповіді:


26

На жаль, немає. Запущений процес не може бути підвищений до прав адміністратора. Я шукаю більш авторитетне джерело, але наразі я знайшов:

  1. "Програми не можна підвищувати після їх запуску ..."

  2. "Код може бути підвищений лише на рівні процесу при запуску, це означає, що запущений процес не може бути підвищений."


1
Це абсолютно неправда. API Win32 підтримує підняття довільних додатків, які вже запущені, хоча програма, про яку йде мова, повинна розкривати функціональність. Ця стаття та супровідний вихідний код демонструють, як це досягти. Цілком можливо, що можна було написати заяву на вибір та підвищення інших процесів ...
Fopedush

8
@Fopedush Незважаючи на те, що ця стаття характеризує цю техніку як "самовивищувальну", те, що, начебто, справді роблять ці приклади програм, - це запуск нового примірника процесу з використанням ShellExecuteExта дієслова "runas". Я не думаю, що це досягає потреби ОП у підвищенні вже запущеної програми (вона втратить, наприклад, весь свій стан).
Стівен Дженнінгс

коли непідвищений екземпляр Total Commander 8.01 блокується в такій операції, як копіювання в папку програмних файлів, вона пропонує можливість "спробувати як адміністратор". Чи не можна це поширити на "чужі" (не само) процеси?
n611x007

3
@naxa Я не використовував Total Commander, але я б хотів зробити ставку на опцію "повторити як адміністратор", фактично породжує повністю окремий підвищений процес, який виконує привілейовану роботу. Провідник процесів робить це, коли ви вибираєте "Показати деталі для всіх процесів", він запускає нову підвищену копію себе і закриває недоречну копію. Якщо це так, то програми повинні бути спеціально написані, щоб знати, як правильно запустити другий процес.
Стівен Дженнінгс

1
@StephenJennings Ти абсолютно правий - зразок коду, який я пов’язав, насправді просто запускається з командою runas. Я мав би перевірити код на додаток до статті, перш ніж коментувати. У мене було враження, що апі WIN32 виявив якийсь механізм піднесення, але, можливо, я згадую. Я ще раз копатимусь і розміщу повідомлення, якщо зможу знайти те, про що думав.
Фопедуш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.