如何确定是否需要提升的priveleges启动一个进程,而不是通过检查失败

我怎么去检查是否需要privelege提升启动一个subprocess,而不先尝试然后失败?

我需要从Python代码中启动一个subprocess命令。 在某些情况下,它可以正常工作,而在其他情况下,事实certificate,需要提高专业知识; 而在一些Windows系统中,这种情况导致我的程序冻结。

我想确定是否需要升级,而不尝试先运行subprocess并捕获/捕获任何错误条件。

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

subprocess.call('path _ filename _ options',shell = False)

用pywin32,像下面的东西应该工作…:

import pythoncom import pywintypes import win32api from win32com.shell import shell if shell.IsUserAnAdmin(): ... 

是的,似乎pywin32确实支持Python 3。

由Alex Martelli撰写

另外这个没有pywin32的人。

 import ctypes print ctypes.windll.shell32.IsUserAnAdmin()