约 1908 字

约 10 分钟

#服务管理

服务是随系统启动、在后台长期运行的程序。PowerShell 提供了 Get-Service、Start-Service、Stop-Service 和 Restart-Service 等命令来查询和控制服务。服务的可用范围和权限密切相关。

#查看服务

Get-Service 不加参数时列出所有服务:

> Get-Service

按名称筛选,名称支持通配符:

> Get-Service -Name ssh*

也可以按显示名称筛选:

> Get-Service -DisplayName "*Update*"

结果中常见的属性有 Status、Name、DisplayName 和 StartType:

> Get-Service | Where-Object Status -eq 'Running' |
    Select-Object Status, Name, DisplayName

#启动、停止与重启

> Start-Service -Name sshd
> Stop-Service -Name sshd
> Restart-Service -Name sshd

这三个命令都支持 -Name 和 -DisplayName,并接受通配符:

> Start-Service -DisplayName "Print Spooler"
> Restart-Service -Name "wuauserv"
  • -Name 匹配服务的内部名称,支持通配符。
  • -DisplayName 匹配显示名称,适合名称不易记忆的服务。
  • 操作前最好先用 Get-Service 确认匹配结果,避免一次影响多个服务。

停止服务时,如果服务有依赖项或需要强制操作,可以使用 -Force。部分服务还需要管理员权限。

#依赖服务

Get-Service 的 -DependentServices 和 -RequiredServices 开关可以查看服务之间的依赖关系:

> Get-Service -Name sshd -DependentServices
> Get-Service -Name sshd -RequiredServices
  • -DependentServices 列出依赖该服务的其他服务。
  • -RequiredServices 列出该服务所依赖的服务。

在停止某个服务前检查依赖关系,可以避免影响其他功能。

例如在 systemd 系统上:

$ sudo systemctl status sshd
$ sudo systemctl restart sshd

#注意事项

服务操作通常需要提升权限。在 Windows 上应以管理员身份运行 PowerShell;在 Linux 上通常使用 sudo 调用 systemctl,而不是直接依赖 Start-Service。此外,生产环境中停止服务前应确认业务影响。

#推荐阅读

更新: 2026/11/2

作者: planc

创建: 2026/11/2