python - 如何确定是否需要提升权限才能在不进行故障检查的情况下启动进程

标签 python windows escalation

如何在不先尝试然后失败的情况下检查是否需要提升权限来启动子进程?

我需要从 python 代码中启动一个子进程命令。在某些情况下,它工作正常,在其他情况下,事实证明需要更高的权限;在某些 Windows 系统上,这种情况会导致我的程序卡住。

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

导致程序卡住的进程被调用;

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

最佳答案

With pywin32, something like the following should work...:

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

if shell.IsUserAnAdmin():
   ...

And yes, it seems pywin32 does support Python 3.

Alex Martelli 撰写

这也适用于没有 pywin32 的人。

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

关于python - 如何确定是否需要提升权限才能在不进行故障检查的情况下启动进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078708/

相关文章:

c - c (libzmq) 中的 Zeromq pub/sub 示例带有工作过滤器(在 Windows 上)?

c# - Entity Framework 6 在使用引用同一数据库的多个上下文时防止事务升级

python - 确定 ThreadPool 何时完成处理队列

windows - 无论如何让程序共享 Windows 资源管理器图标覆盖?

python - 运行我的第一个Spark Python程序错误

windows - 通过插入符和符号回显在批处理文件中换行。 (^&回声。)

sql-server - SQL Server 锁升级问题

C 提权(带密码)

python - 如何编辑 Django 网站页面上的内容?

python - 复制并插入嵌套列表 Python