如何确定在没有按故障检查的情况下启动进程是否需要提升权限

时间:2011-11-10 11:20:05

标签: python windows escalation

如何在不首先尝试失败的情况下检查启动子流程是否需要privelege提升?

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

我想确定是否需要更新privelege升级而不尝试首先运行子进程并捕获/捕获任何错误条件。

使用;

调用导致程序冻结的过程

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

1 个答案:

答案 0 :(得分:3)

  

使用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()