跨平台检查Windows下Python脚本的管理员权限方法?
有没有一种跨平台的方法可以检查我的Python脚本是否以管理员权限运行?很遗憾,os.getuid()
这个方法只适用于UNIX系统,在Windows上是无法使用的。
5 个回答
4
试着去做你需要管理员权限的事情,然后看看是否失败了。
不过,这种方法只对某些事情有效,你到底想做什么呢?
13
这是我根据被接受的答案创建的一个工具函数:
import os
import ctypes
class AdminStateUnknownError(Exception):
"""Cannot determine whether the user is an admin."""
pass
def is_user_admin():
# type: () -> bool
"""Return True if user has admin privileges.
Raises:
AdminStateUnknownError if user privileges cannot be determined.
"""
try:
return os.getuid() == 0
except AttributeError:
pass
try:
return ctypes.windll.shell32.IsUserAnAdmin() == 1
except AttributeError:
raise AdminStateUnknownError
68
import ctypes, os
try:
is_admin = os.getuid() == 0
except AttributeError:
is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
print is_admin
当然可以!不过你没有提供具体的内容,我无法进行翻译。请把你想要翻译的StackOverflow内容发给我,我会帮你用简单易懂的语言解释清楚。