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

PowerShell的Stop-Service cmdlet是否等待服务停止后再执行后续脚本?

Stop-Service cmdlet 执行行为与脚本时长分析

一、Stop-Service的默认执行逻辑

默认状态下,Stop-Service是同步阻塞执行的:执行该命令后,PowerShell会等待目标服务完全停止(状态变为Stopped),才会继续运行脚本的后续内容。不会出现提交停止请求后立即跳过的情况。

二、你的脚本执行时长计算

你的脚本通过foreach循环逐个处理服务列表:

  • 处理第一个服务:检查状态后执行Stop-Service,等待10秒直到服务停止;
  • 处理第二个服务:重复上述流程,再等待10秒;
  • 处理第三个服务:同样等待10秒。

假设每个服务停止耗时10秒且均成功,脚本总执行时长约为30秒。

三、可选:异步停止服务的方法

如果希望不等待服务停止就继续处理下一个服务,可以使用-NoWait参数(仅PowerShell 6及以上版本支持):

Stop-Service $serviceObj -NoWait

这种模式下,脚本会立即向服务提交停止请求,然后直接进入下一次循环,总时长会接近10秒(三个服务几乎同时启动停止流程)。但要注意,这种方式无法直接确认服务是否停止成功,需要后续额外编写代码检查服务状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:16:12