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

使用PowerShell定时启停Web服务的技术求助

解决PowerShell定时启动/停止服务的方案

错误原因分析

  • 第一种方法:Set-ScheduledTask参数使用错误(未指定-TaskName参数),且未定义任务要执行的核心动作(启动/停止服务的命令);多余的$ABC.GetWebService调用无意义,PowerShell操作系统服务无需此步骤。
  • 第二种方法:New-ServiceTrigger并非PowerShell内置cmdlet,不存在该命令。

正确解决方案

需创建两个独立的计划任务,分别实现每日早8点启动服务、晚8点停止服务。请以管理员身份运行PowerShell执行以下脚本:

1. 注册每日8点启动服务的任务

# 目标服务名称
$serviceName = "ABC Interval JobExecutor Service"

# 定义任务动作:调用PowerShell执行启动服务命令
$startAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-Command `"Start-Service -Name '$serviceName'`""

# 定义每日8点的触发器
$startTrigger = New-ScheduledTaskTrigger -Daily -At 08:00

# 注册计划任务
Register-ScheduledTask -TaskName "Start ABC Service Daily" -Action $startAction -Trigger $startTrigger -Description "每日8点启动ABC Interval JobExecutor Service" -RunLevel Highest

2. 注册每日20点停止服务的任务

# 目标服务名称
$serviceName = "ABC Interval JobExecutor Service"

# 定义任务动作:调用PowerShell执行停止服务命令
$stopAction = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-Command `"Stop-Service -Name '$serviceName'`""

# 定义每日20点的触发器
$stopTrigger = New-ScheduledTaskTrigger -Daily -At 20:00

# 注册计划任务
Register-ScheduledTask -TaskName "Stop ABC Service Daily" -Action $stopAction -Trigger $stopTrigger -Description "每日20点停止ABC Interval JobExecutor Service" -RunLevel Highest

补充说明

  • -RunLevel Highest确保任务以最高权限运行,避免因权限不足无法操作服务。
  • 若不确定服务名称是否准确,可执行Get-Service | Where-Object {$_.DisplayName -like "*ABC*"}查看完整服务信息。
  • 若后续需修改任务,可使用Set-ScheduledTask命令;首次创建任务必须用Register-ScheduledTask。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:10:05