PowerShell是管理Windows服务最直接灵活的工具,支持通过Get-Service查询、Start/Stop/Restart-Service启停、Set-Service设置启动类型、Export-Csv导出及Get-Service -ComputerName或Invoke-Command远程管理。
powershell 是管理 windows 服务最直接、最灵活的工具之一。它不依赖图形界面,支持批量操作、远程控制、条件筛选和自动化导出,适合日常运维与批量部署场景。
查看服务状态
Get-Service 是核心命令,返回的是可管道处理的对象,不是纯文本。默认运行会列出所有服务(名称、显示名、状态),但实际使用中建议加过滤:
- 只看正在运行的服务:Get-Service | Where-Object {$_.Status -eq 'Running'}
- 按名称精确查找(如 Windows Update):Get-Service -Name wuauserv
- 模糊匹配(如所有含“print”的服务):Get-Service *print*
- 按状态排序便于观察:Get-Service | Sort-Object Status, Name
启停与重启服务
Get-Service 本身只查不控,真正改变服务状态需配合 Start-Service、Stop-Service 和 Restart-Service:
- 启动服务(如 Print Spooler):Start-Service -Name Spooler
- 强制停止(终止依赖进程):Stop-Service -Name Spooler -Force
- 重启服务(先停后启):Restart-Service -Name Spooler
- 批量操作:启动所有以“wua”开头的服务:Get-Service wua* | Start-Service
修改服务启动类型
启动类型决定服务是否随系统自动加载,用 Set-Service 设置:
- 设为自动启动:Set-Service -Name wuauserv -StartupType Automatic
- 设为手动启动:Set-Service -Name wuauserv -StartupType Manual
- 禁用服务(防止意外启动):Set-Service -Name wuauserv -StartupType Disabled
- 注意:部分服务需管理员权限才能修改,且修改后不会立即生效,下次启动时才应用
导出与远程管理
服务信息可导出分析,也能跨网络查询其他机器:
- 导出为 CSV 报告(含关键字段):Get-Service | Select-Object Name, Status, DisplayName | Export-Csv "C:\services.csv" -NoTypeInformation
- 查远程主机服务(需 WinRM 开启、防火墙放行):Get-Service -ComputerName 192.168.1.100 -Name Spooler
- 查远程全部服务:Get-Service -ComputerName 192.168.1.100
- 远程启停仍需配合对应命令,例如:Invoke-Command -ComputerName 192.168.1.100 -ScriptBlock { Start-Service Spooler }


















