4

У меня проблема с запуском .exe .exe файла с правами администратора.

Я также попробовал:

subprocess.call(['runas', '/user:Administrator', 'myfile.exe'])

Но тогда я должен ввести пароль ..

Есть ли шанс оставить это?

Спасибо!

PS: я искал несколько часов ... ничего не нашел!

4 ответа4

2

Это немного обходно, но другой способ - запустить команду оболочки, запустить Powershell (поставляется с Windows), а затем сказать Powershell запустить .exe от имени администратора:

(просто помните, что команда shell находится в CMD, поэтому вы можете использовать обратную косую черту, а не обратную черту Powershell.)

Powershell command: Start-Process "executable.exe" -ArgumentList @("Arg1", "Arg2") -Verb RunAs

CMD running Powershell: Powershell -Command "& { Start-Process \"executable.exe\" ... }"

Python running CMD runnning Powershell:
os.system(r'''
Powershell -Command "& { Start-Process \"notepad.exe\"
 -ArgumentList @(\"C:\\Windows\\System32\\drivers\\etc\\hosts\")
 -Verb RunAs } " '''
2

Единственное, что я знаю из того, что вы говорите, - это использование "Application Compatibility Toolkit" http://www.microsoft.com/downloads/details.aspx?FamilyId=24DA89E9-B581-47B0-B45E-492DD6DA2971&displaylang=en

И как его использовать: https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom/window-on-windows/?p=635

Источник: Можете ли вы отключить UAC для одного приложения?

0

Этот ответ работал для меня

import ctypes, sys

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if is_admin():
    # Code of your program here
else:
    # Re-run the program with admin rights
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
0

Я понимаю, что опоздаю с этим, и это может быть не очень элегантное решение .... но если вы откроете командную строку с повышенными правами, а затем запустите свой скрипт на python, разве исполняемые файлы, вызываемые с помощью "subprocess.call", не будут запущен с той же высоты, что и окно CMD?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .