get-service是powershell管理windows服务的核心命令,用于查询状态、筛选服务、配合start/stop/restart-service启停、set-service修改启动类型、export-csv导出及远程管理。
powershell 中的 get-service 是查看和管理 windows 服务的核心起点。它本身不直接启停服务,但能快速获取服务状态、筛选目标、配合其他命令完成完整操作。关键在于理解它返回的是对象(不是纯文本),支持管道传递和属性筛选,这是高效管理的基础。
查服务:按需精准定位
默认运行 Get-Service 会列出全部服务,但实际中几乎总要加条件:
- 只看运行中的服务:
Get-Service | Where-Object {$_.Status -eq 'Running'} - 按真实服务名精确查(如 Windows Update):
Get-Service -Name wuauserv - 按显示名称模糊查(更直观):
Get-Service -DisplayName "*print*" - 查依赖关系:加
-RequiredServices看它依赖哪些服务,加-DependentServices看哪些服务依赖它
控服务:用配套命令改变状态
Get-Service 查完后,要用对应命令执行动作:
- 启动:
Start-Service -Name Spooler(或传对象:Get-Service Spooler | Start-Service) - 停止(含强制):
Stop-Service -Name Spooler -Force(-Force 终止依赖进程) - 重启:
Restart-Service -Name wuauserv(已停则只启动,已启则先停再启) - 批量操作很自然:
Get-Service wua* | Stop-Service可一次停掉所有 Windows Update 相关服务
改配置:设置服务启动类型
启动类型决定服务开机是否自动加载,用 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:\report.csv" -NoTypeInformation - 查远程主机(WinRM 已启用):
Get-Service -ComputerName 192.168.1.100 - PowerShell 6+ 不支持 -ComputerName,改用:
Invoke-Command -ComputerName 192.168.1.100 -ScriptBlock { Get-Service } - 远程启停仍需调用对应命令,例如:
Invoke-Command -ComputerName 192.168.1.100 -ScriptBlock { Restart-Service -Name Spooler }











