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

如何在Windows服务器上通过PID使用PowerShell批量重启服务

通过PowerShell利用PID批量重启Windows服务

官方命令语法(中文翻译)

Restart-Service
       [-Force]
       [-Name] <字符串[]>
       [-PassThru]
       [-Include <字符串[]>]
       [-Exclude <字符串[]>]
       [-WhatIf]
       [-Confirm]
       [<公共参数>]

Restart-Service本身不支持直接通过PID参数重启服务,需要先通过PID关联到对应的服务对象,再执行重启操作。以下是具体实现步骤:

1. 定义目标PID列表

将需要处理的服务PID存入数组,替换成实际的PID值:

$targetPIDs = @(1234, 5678, 9012) # 替换为你的目标PID集合

2. 批量关联服务并重启

使用Get-CimInstance(推荐替代旧版Get-WmiObject)查询PID对应的服务,然后调用Restart-Service执行重启:

foreach ($pid in $targetPIDs) {
    # 根据PID查询对应的服务
    $service = Get-CimInstance Win32_Service -Filter "ProcessId = $pid"
    
    if ($service) {
        Write-Host "正在重启服务: $($service.DisplayName) (服务名: $($service.Name)) - PID: $pid"
        # 执行重启,-Force参数会强制重启依赖该服务的其他服务,按需选择
        Restart-Service -Name $service.Name -Force
    } else {
        Write-Warning "未找到与PID $pid 关联的服务"
    }
}

注意事项

  • 必须以管理员权限运行PowerShell,否则可能因权限不足导致服务重启失败
  • -Force参数会强制重启依赖目标服务的其他服务,若不需要此行为可移除该参数
  • 如果PID对应的不是服务进程(比如普通应用程序),脚本会输出警告信息,不影响其他服务的处理

内容的提问来源于stack exchange,提问作者陳冠翔

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:30:40