最近更新于 2024-12-10 15:00
测试环境
Windows 11 23H2
Python 3.13.1
实现
import sys
import ctypes
def isAdmin():
'''
检查当前用户是否具有管理员权限
Returns:
bool: 如果当前用户具有管理员权限,则返回True,否则返回False
'''
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
def runAsAdmin():
'''
以管理员身份运行程序
Returns:
bool: 如果成功以管理员身份运行,则返回True,否则返回False
'''
if isAdmin():
print("已经以管理员身份运行。")
return True
else:
print("未以管理员身份运行,正在请求提升权限。")
try:
params = ' '.join([sys.executable] + sys.argv)
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, params, None, 1)
return True
except:
print("请求提升权限失败。")
return False
if __name__ == "__main__":
if runAsAdmin():
print("现在正在以管理员身份运行。")
else:
print("无法以管理员身份运行。")
Python 程序检查是否具有管理员权限(不是则请求权限重启)