在python脚本中请求UAC提升

时间:2012-11-22 14:04:35

标签: python uac

我需要我的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

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

虽然帮助修复此代码是最佳的,但我也准备尝试其他任何有效的方法,谢谢!

1 个答案:

答案 0 :(得分:0)

使用以下内容:

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.")