【发布时间】:2011-11-10 11:20:04
【问题描述】:
如何检查是否需要特权提升才能启动子进程而不先尝试然后失败?
我需要从 python 代码中启动一个子进程命令。在某些情况下它可以正常工作,在其他情况下则需要提升权限;在某些 Windows 系统上,这种情况会导致我的程序冻结。
我想确定是否需要特权升级,而不尝试首先运行子进程并捕获/捕获任何错误情况。
导致程序冻结的进程被调用;
subprocess.call('路径_文件名_选项',shell=False)
【问题讨论】:
-
不可能 100% 做到这一点。好的开始是阅读应用清单并检查 requireAdministrator。
-
感谢提示,我会进一步调查:)
-
检查失败有什么问题? EAFP 是 Python 的标准。
-
@Karl,是的,但是在我目前正在尝试解决的情况下,在失败的情况下,正在运行的程序会冻结并且当它尝试启动的子进程需要提升的权限时不会返回。程序正在尝试使用 subprocess.call('some path and filename and options',shell=False) 启动
-
也许只是提升权限?如果用户已经是管理员,这不会造成问题,而且听起来,如果您并不总是需要升级,那么您无法提前确定是否需要它们...... o_O跨度>
标签: python windows escalation