3

如何检查是否需要特权提升来启动子进程而不先尝试然后失败?

我需要从 python 代码中启动一个子进程命令。在某些情况下它可以正常工作,在其他情况下则需要提升权限;在某些 Windows 系统上,这种情况会导致我的程序冻结。

我想确定是否需要特权升级,而无需尝试首先运行子进程并捕获/捕获任何错误情况。

导致程序冻结的进程被调用;

subprocess.call('路径_文件名_选项',shell=False)

4

1 回答 1

4

使用 pywin32,类似以下内容应该可以工作......:

import pythoncom
import pywintypes
import win32api
from win32com.shell import shell

if shell.IsUserAnAdmin():
   ...

是的,看起来 pywin32 确实支持 Python 3。

作者:亚历克斯·马泰利

这也适用于没有 pywin32 的人。

import ctypes
print ctypes.windll.shell32.IsUserAnAdmin()
于 2011-11-10T12:55:46.120 回答