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

如何编写Python脚本获取Windows管理员权限执行服务启停?

实现Python脚本自动获取Windows管理员权限执行服务启停

方法一:脚本启动时自动请求管理员权限

直接在Python脚本中添加权限检查逻辑,若当前进程无管理员权限,则自动以管理员身份重启脚本。此方式仅会弹出UAC确认框(无需输入密码,前提是当前用户属于管理员组),适合需要自动执行的场景。

示例代码:

import ctypes
import sys
import subprocess

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if not is_admin():
    # 以管理员权限重启当前脚本
    ctypes.windll.shell32.ShellExecuteW(
        None,
        "runas",
        sys.executable,
        " ".join(sys.argv),
        None,
        1
    )
    sys.exit()

# 服务操作核心逻辑
def restart_service(service_name):
    # 停止服务
    subprocess.run(["sc", "stop", service_name], check=True, capture_output=True, text=True)
    # 启动服务
    subprocess.run(["sc", "start", service_name], check=True, capture_output=True, text=True)

def check_service_status(service_name):
    result = subprocess.run(
        ["sc", "query", service_name],
        capture_output=True,
        text=True
    )
    return "RUNNING" in result.stdout

if __name__ == "__main__":
    TARGET_SERVICE = "你的目标服务名称"
    if not check_service_status(TARGET_SERVICE):
        print(f"检测到服务{TARGET_SERVICE}异常,执行重启操作...")
        try:
            restart_service(TARGET_SERVICE)
            print(f"服务{TARGET_SERVICE}重启成功")
        except subprocess.CalledProcessError as e:
            print(f"服务重启失败: {e.stderr}")

方法二:利用Windows任务计划实现完全无人值守

若需要完全自动化(无任何弹窗),可通过任务计划程序配置脚本以最高权限运行:

  • 打开「任务计划程序」,创建新任务
  • 在「常规」选项卡勾选「使用最高权限运行」,可同时设置「不管用户是否登录都要运行」
  • 设置触发器:可选择定时触发(如每5分钟检查一次服务状态),或基于事件日志触发(例如服务意外停止的特定事件ID)
  • 设置操作:选择「启动程序」,路径填Python解释器路径(如C:\Python39\python.exe),参数填你的脚本完整路径(如"C:\scripts\service_monitor.py")

方法三:最小权限策略(无需管理员权限)

若不想提升到管理员权限,可通过权限分配实现:

  • 给运行脚本的用户单独分配服务启停权限:通过「本地安全策略」或组策略,添加用户到「管理服务」权限组,或直接针对目标服务设置权限
  • 域环境下可通过组策略批量部署权限配置,确保脚本拥有操作服务的必要权限,无需管理员身份

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:33:28