gri*_*yvp 18 python privileges admin-rights
有没有任何跨平台的方法来检查我的Python脚本是否以管理员权限执行?不幸的是,os.getuid()它仅限UNIX,在Windows下不可用.
gri*_*yvp 41
import ctypes, os
try:
is_admin = os.getuid() == 0
except AttributeError:
is_admin = ctypes.windll.shell32.IsUserAnAdmin() != 0
print is_admin
Run Code Online (Sandbox Code Playgroud)
这是我根据接受的答案创建的实用程序函数:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11399 次 |
| 最近记录: |