Повышение привилегий скрипта -current- python на windows? - PullRequest
0 голосов
/ 24 апреля 2020

Intro

Привет, сценарий python работает со слабыми привилегиями на компьютере windows 10.

Как использовать повышение в python для запуска в качестве администратора, без создания отдельного процесса / окна?

Код

Вот что я получил до сих пор:

import ctypes, sys

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

if is_admin():
    print(ctypes.windll.shell32.IsUserAnAdmin())
    print("hi im admin")
    input("[ENTER]")
else:
    print(ctypes.windll.shell32.IsUserAnAdmin())
    print("Low priv user, elevating")
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)

Итак, вы видите, мы используем ctypes.windll.shell32.IsUserAnAdmin(), чтобы проверить, администратор или нет, а затем используйте ShellExecuteW, чтобы использовать «runas» и работать от имени администратора. это работает, но для этого открывается другое окно.

Q

Как я могу подняться в то же окно, в котором пользователь запускал?

...