可以通过使用 Get-Service cmdlet 获取本地或远程计算机上的服务。 与使用 Get-Process 相同,使用不带参数的 Get-Service 命令将返回所有服务。 你可以按名称进行筛选,甚至可以使用星号作为通配符:

PS C:\Users\maxsu> Get-Service -Name vm*

Status   Name               DisplayName
------   ----               -----------
Running  VMAuthdService     VMware Authorization Service
Stopped  vmicguestinterface Hyper-V Guest Service Interface
Stopped  vmicheartbeat      Hyper-V Heartbeat Service
Stopped  vmickvpexchange    Hyper-V Data Exchange Service
Stopped  vmicrdv            Hyper-V 远程桌面虚拟化服务
Stopped  vmicshutdown       Hyper-V Guest Shutdown Service
Stopped  vmictimesync       Hyper-V Time Synchronization Service
Stopped  vmicvmsession      Hyper-V PowerShell Direct Service
Stopped  vmicvss            Hyper-V 卷影复制请求程序
Running  VMnetDHCP          VMware DHCP Service
Running  VMUSBArbService    VMware USB Arbitration Service
Running  VMware NAT Service VMware NAT Service
Running  VMwareHostd        VMware Workstation Server

因为服务的真实名称并不总是可见,所以你可能会发现你需要按显示名称查找服务。 可以按特定名称(使用通配符或使用显示名称的列表)执行此操作:

PS C:\Users\maxsu> Get-Service -DisplayName se*

Status   Name               DisplayName
------   ----               -----------
Running  LanmanServer       Server
Running  SamSs              Security Accounts Manager
Running  seclogon           Secondary Logon
Stopped  SensorDataService  Sensor Data Service
Stopped  SensorService      Sensor Service
Stopped  SensrSvc           Sensor Monitoring Service
Running  SstpSvc            Secure Socket Tunneling Protocol Se...
Running  wscsvc             Security Center

可以使用 Get-Service cmdlet 的 ComputerName 参数获取远程计算机上的服务。 ComputerName 参数接受多个值和通配符,因此你可以使用单个命令获取多台计算机上的服务。 例如,下面的命令获取 Server01 远程计算机上的服务。

Get-Service -ComputerName Server01