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

Azure Pipeline重新部署Windows服务:仅在运行时停止服务

解决Windows服务启停的状态判断问题

仅在服务运行时执行停止操作

CMD 命令实现

sc query "你的服务名称" | findstr /i "RUNNING"
if %errorlevel% equ 0 (
    sc stop "你的服务名称"
    timeout /t 10 /nobreak >nul
)
  • 先查询服务状态,通过findstr过滤出RUNNING状态,若找到则执行停止命令
  • timeout命令用于等待服务完全停止,可根据实际情况调整超时时间(单位:秒)

PowerShell 命令实现

$service = Get-Service -Name "你的服务名称"
if ($service.Status -eq 'Running') {
    $service | Stop-Service -Force -Wait
}
  • -Force参数强制停止依赖该服务的其他进程(按需使用)
  • -Wait参数会等待服务完全停止后再继续执行后续步骤

仅在服务停止时执行启动操作

CMD 命令实现

sc query "你的服务名称" | findstr /i "STOPPED"
if %errorlevel% equ 0 (
    sc start "你的服务名称"
    timeout /t 5 /nobreak >nul
)
  • 过滤服务的STOPPED状态,确认服务已停止后执行启动命令
  • 可调整timeout时间确保服务启动完成

PowerShell 命令实现

$service = Get-Service -Name "你的服务名称"
if ($service.Status -eq 'Stopped') {
    $service | Start-Service -Wait
}
  • -Wait参数等待服务启动至运行状态后再继续后续流程

DevOps 管道配置提示

在Azure DevOps发布管道中,添加Command Line或PowerShell任务,将上述命令填入脚本框,替换你的服务名称为实际Windows服务名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:03:34