2

我需要我的 python 脚本来提升 UAC 权限。我一次又一次地尝试,无法弄清楚。

这是我现在的代码:

from win32com.shell.shell import ShellExecuteEx
from win32com.shell import shellcon
import win32process, win32event
import win32con
from ntsecuritycon import *

ASADMIN = 'asadmin'

if sys.argv[-1] != ASADMIN:
    script = os.path.abspath(sys.argv[0])
    params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
    ShellExecuteEx(fMask=shellcon.SEE_MASK_NOCLOSEPROCESS,
                    lpVerb="runas",
                    lpFile=sys.executable,
                    lpParameters=params,
                    nShow=win32con.SW_SHOW)
    sys.exit(0)

现在,到目前为止,我所掌握的信息是,它会毫无错误地运行,并且会自行重新打开。重新打开的脚本返回

["c:\\users\\justin\\UAC.py", "asadmin"]

为了

sys.argv

,但它仍然不允许我执行管理任务。

尽管修复此代码的帮助是最佳的,但我也准备尝试其他任何可行的方法,谢谢!

4

1 回答 1

1

使用以下内容:

import os
import sys
import win32com.shell.shell as shell
ASADMIN = 'asadmin'

if sys.argv[-1] != ASADMIN:
    script = os.path.abspath(sys.argv[0])
    params = ' '.join([script] + sys.argv[1:] + [ASADMIN])
    shell.ShellExecuteEx(lpVerb='runas', lpFile=sys.executable, lpParameters=params)
    print("I am root now.")
于 2020-05-02T04:23:04.967 回答