как запустить explorer.exe с правами администратора из python - PullRequest
1 голос
/ 08 мая 2019

background:

Я хочу запустить графический файл ESET Internet Security из python от имени администратора.Он называется egui.exe.Поэтому в его свойствах при совместимости я установил флажок «запускать эту программу от имени администратора», чтобы она всегда выполнялась от имени администратора.

Еще одно замечание: по какой-то причине это может показаться мне непонятным, если я запускаю этотФайл в Python, как это:

os.startfile("c:\\program files\\ESET\\ESET Security\\egui.exe")

или

os.system("c:\\program files\\ESET\\ESET Security\\egui.exe")

Он будет зависать и ничего не делать.я протестировал тот же подход в CMD, как эти:

c:\Program Files\ESET\ESET Security>egui.exe
c:\Program Files\ESET\ESET Security>start egui.exe

Но оба из них заставят CMD зависнуть и ничего не делать, и даже Ctrl + C не прервет его, и CMD должен быть закрыт.

что я сделал:

Подход, который каким-то образом работает, заключается в запуске exe-файла через explorer.exe:

os.system('explorer.exe "c:\\program files\\ESET\\ESET Security\\egui.exe"')

Это не остановится, но проблемачто из-за того, что я хочу, чтобы egui.exe запускался от имени администратора, он вызовет приглашение UAC, что недопустимо, поскольку предполагается, что программа тестируется с использованием GUI Automation.

Вопрос:

Я могу запускать другие программы как администратор, не вызывая UAC, когда моя программа сама запускается как администратор.Но я не могу при запуске через explorer.exe, и я думаю, что это потому, что explorer.exe не как сам администратор.Итак, вопрос в том, как я могу запустить explorer.exe с правами администратора?Кроме того, ввод пароля каждый раз неприемлем по понятным причинам.

PS: К сожалению, в его свойствах нет параметра совместимости для explorer.exe.

...