【发布时间】:2012-11-22 14:04:34
【问题描述】:
我需要我的 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
,但它仍然不允许我执行管理任务。
虽然修复此代码的帮助是最佳的,但我也准备尝试任何其他可行的方法,谢谢!
【问题讨论】:
-
我想,但答案并不能真正帮助我编写代码。
-
您是否尝试过将实际的 python.exe 设置为以管理员权限运行?然后它运行的任何东西也将具有这些权限。程序本身将无法使自己以管理员身份运行,如果可以的话,UAC 的意义何在?