You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本申请管理员权限点击确认后无响应问题求助

Python管理员权限申请后无响应问题解决方案

核心原因

  • 工作目录不匹配:runas启动的管理员进程默认工作路径为C:\Windows\System32,你代码中用相对路径写入的testingAdmin.txt实际被保存到了系统目录,而非脚本所在文件夹,会让你误以为代码没执行。
  • 窗口自动关闭:提权后的进程执行完写入逻辑后会直接退出,控制台窗口一闪而过,没有可见提示,也会造成无反应的错觉。
  • 参数解析错误:如果你的脚本路径包含空格," ".join(sys.argv)的拼接方式不会对路径做引号包裹,会导致参数拆分错误,脚本无法正常启动。

修正后代码

import ctypes, sys, os

def check_is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False
        
if check_is_admin():
    # 此处可替换为设置系统时间的业务逻辑
    with open("testingAdmin.txt", "w") as text_file:
        text_file.write('this is admin')
    print("管理员权限验证通过,操作执行成功")
    # 增加暂停逻辑,避免窗口直接关闭
    input("按任意键退出")
else:
    print('当前无管理员权限,正在申请权限')
    # 给所有参数包裹双引号,处理路径含空格的场景
    cli_params = " ".join([f'"{arg}"' for arg in sys.argv])
    # 手动指定工作目录为脚本所在文件夹
    script_path = os.path.dirname(os.path.abspath(__file__))
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, cli_params, script_path, 1)

验证说明

运行修正后的代码,同意权限申请后会弹出新的控制台窗口并停留,你可以直接在脚本所在目录找到生成的testingAdmin.txt文件。如果要验证原有代码是否生效,可以直接到C:\Windows\System32目录下查找对应文件。

内容的提问来源于stack exchange,提问作者Jamil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:45:05