获取本地或远程计算机上的服务。

语法

Get-Service [[-Name] <string[]>] [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<CommonParameters>]

Get-Service -DisplayName <string[]> [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<CommonParameters>]

Get-Service [-InputObject <ServiceController[]>] [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<CommonParameters>]

说明

Get-Service cmdlet 获取表示本地计算机或远程计算机上的服务(包括正在运行和已停止的服务)的对象。

通过指定服务的服务名称或显示名称,可以指示 Get-Service 只获取特定服务,也可以将服务对象通过管道传送给 Get-Service。

参数

-ComputerName <string[]>

获取指定计算机上运行的服务。默认值为本地计算机。

键入远程计算机的 NetBIOS 名称、IP 地址或完全限定的域名。要指定本地计算机,请键入计算机名称、句点 (.) 或“localhost”。

此参数不依赖于 Windows PowerShell 远程处理。即使您的计算机未配置为运行远程命令,您也可以使用 Get-Service 的 ComputerName 参数。

是否为必需?

false

位置?

named

默认值

Localhost

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-DependentServices

只获取依赖于指定服务的服务。

默认情况下,Get-Service 获取所有服务。

是否为必需?

false

位置?

named

默认值

False

是否接受管道输入?

false

是否接受通配符?

false

-DisplayName <string[]>

指定要检索的服务的显示名称。允许使用通配符。默认情况下,Get-Service 将获取计算机上的所有服务。

是否为必需?

true

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Exclude <string[]>

忽略指定服务。此参数的值对 Name 参数进行限定。请输入名称元素或模式,例如“s*”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-Include <string[]>

只检索指定服务。此参数的值对 Name 参数进行限定。请输入名称元素或模式,例如“s*”。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-InputObject <ServiceController[]>

指定表示要检索的服务的 ServiceController 对象。输入一个包含对象的变量,或键入可获取对象的命令或表达式。也可以将服务对象通过管道传递给 Get-Service。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-Name <string[]>

指定要检索的服务的名称。允许使用通配符。默认情况下,Get-Service 将获取计算机上的所有服务。

是否为必需?

false

位置?

1

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

true

-RequiredServices

只获取此服务所需的服务。

此参数获取服务的 ServicesDependedOn 属性值。默认情况下,Get-Service 获取所有服务。

是否为必需?

false

位置?

named

默认值

False

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.ServiceProcess.ServiceController, System.String

可以将服务对象或服务名称通过管道传递给 Get-Service。

输出

System.ServiceProcess.ServiceController

Get-Service 返回表示计算机上服务的对象。

说明

还可以使用 Get-Service 的内置别名“gsv”来对其进行引用。有关详细信息,请参阅 about_Aliases。

Get-Service 只有在当前用户有权查看服务的情况下才显示服务。如果 Get-Service 不显示服务,则您可能无权查看它们。

若要查找您的系统中的每个服务的服务名称及显示名称,请键入“get-service”。服务名称显示在 Name 列中,显示名称显示在 DisplayName 列中。

当按状态值以升序排序时,“Stopped”服务将出现在“Running”服务之前。服务的 Status 属性是一个枚举值,其中状态的名称表示整数值。该排序是基于整数值进行的,而非名称。“Running”出现在“Stopped”之前的原因在于“Stopped”的值为“1”,而“Running”的值为“4”。

示例 1

C:\PS>get-service

说明
-----------
此命令检索系统上的所有服务。此命令所得结果与键入“get-service *”所得结果相同。默认显示将显示每个服务的状态、服务名称和显示名称。






示例 2

C:\PS>get-service wmi*

说明
-----------
此命令检索其服务名称以“WMI”(Windows Management Instrumentation 的首字母缩写)开头的服务。






示例 3

C:\PS>get-service -displayname *network*

说明
-----------
此命令显示其显示名称包含单词“network”的
服务。搜索显示名称可以在服务名称不包含“Net”的情况下查找与网络相关的服务,例如 xmlprov(网络提供服务)。






示例 4

C:\PS>get-service -name win* -exclude winrm

说明
-----------
这些命令只获取服务名称以“win”开头的服务(WinRM 服务除外)。






示例 5

C:\PS>get-service | where-object {$_.Status -eq "Running"}

说明
-----------
此命令只显示当前正在运行的服务。它使用 Get-Service cmdlet 获取计算机上的所有服务。管道运算符 (|) 将结果传递给 Where-Object cmdlet,后者只选择其 Status 属性等于“Running”的服务。

Status 是服务对象的唯一属性。若要查看所有属性,请键入“get-service | get-member”。






示例 6

C:\PS>get-service -computername Server02

说明
-----------
此命令获取 Server02 远程计算机上的服务。

因为 Get-Service 的 ComputerName 参数不使用 Windows PowerShell 远程处理,所以即使未将计算机配置为在 Windows PowerShell 中进行远程处理,您也可以使用此参数。






示例 7

C:\PS>get-service | where-object {$_.DependentServices} | format-list -property Name, DependentServices, @{Label="NoOfDependentS
ervices"; Expression={$_.dependentservices.count}} 

Name                  : AudioEndpointBuilder
DependentServices     : {AudioSrv}
NoOfDependentServices : 1

Name                  : Dhcp
DependentServices     : {WinHttpAutoProxySvc}
NoOfDependentServices : 1
...

说明
-----------
这些命令将列出计算机上具有依赖服务的服务。

第一个命令使用 Get-Service cmdlet 来获取计算机上的服务。管道运算符 (|) 将服务发送给 Where-Object cmdlet,该 cmdlet 选择其 DependentServices 属性不为 null 的服务。

另一个管道运算符将结果发送给 Format-List cmdlet。该命令使用其 Property 参数来显示服务名称、依赖服务的名称以及显示每个服务具有的依赖服务数目的计算属性。






示例 8

C:\PS>C:\PS> get-service s* | sort-object status 

Status   Name               DisplayName
------   ----               -----------
Stopped  stisvc             Windows Image Acquisition (WIA)
Stopped  SwPrv              MS Software Shadow Copy Provider
Stopped  SysmonLog          Performance Logs and Alerts
Running  Spooler            Print Spooler
Running  srservice          System Restore Service
Running  SSDPSRV            SSDP Discovery Service
Running  ShellHWDetection   Shell Hardware Detection
Running  Schedule           Task Scheduler
Running  SCardSvr           Smart Card
Running  SamSs              Security Accounts Manager
Running  SharedAccess       Windows Firewall/Internet Connectio...
Running  SENS               System Event Notification
Running  seclogon           Secondary Logon

C:\PS> get-service s* | sort-object status -descending

Status   Name               DisplayName
------   ----               -----------
Running  ShellHWDetection   Shell Hardware Detection
Running  SharedAccess       Windows Firewall/Internet Connectio...
Running  Spooler            Print Spooler
Running  SSDPSRV            SSDP Discovery Service
Running  srservice          System Restore Service
Running  SCardSvr           Smart Card
Running  SamSs              Security Accounts Manager
Running  Schedule           Task Scheduler
Running  SENS               System Event Notification
Running  seclogon           Secondary Logon
Stopped  SysmonLog          Performance Logs and Alerts
Stopped  SwPrv              MS Software Shadow Copy Provider
Stopped  stisvc             Windows Image Acquisition (WIA)

说明
-----------
此命令显示按服务的 Status 属性值以升序对服务进行排序时,已停止的服务将出现在正在运行的服务之前。发生这种情况的原因在于 Status 的值是一个枚举值,其中“Stopped”的值为“1”,而“Running”的值为 4。

要首先列出正在运行的服务,请使用 Sort-Object cmdlet 的 Descending 参数。






示例 9

C:\PS>get-service -name winrm -computername localhost, Server01, Server02  | format-table -property MachineName, Status, Name, DisplayName -auto

MachineName    Status  Name  DisplayName
------------   ------  ----  -----------
localhost      Running WinRM Windows Remote Management (WS-Management)
Server01       Running WinRM Windows Remote Management (WS-Management)
Server02       Running WinRM Windows Remote Management (WS-Management)

说明
-----------
此命令使用 Get-Service cmdlet 在两台远程计算机和本地计算机(“localhost”)上运行“Get-Service Winrm”命令。

Get-Service 命令在远程计算机上运行,并将结果返回到本地计算机。管道运算符 (|) 将结果发送给 Format-Table cmdlet,该 cmdlet 将服务格式设置为表。Format-Table 命令使用 Property 参数来指定表中显示的属性,包括 MachineName 属性。






示例 10

C:\PS>get-service winrm -requiredServices

说明
-----------
此命令获取 WinRM 服务所需的服务。

此命令将返回该服务的 ServicesDependedOn 属性的值。






示例 11

C:\PS>"winrm" | get-service

说明
-----------
此命令获取本地计算机上的 WinRM 服务。此示例演示可以将服务名称字符串(括在引号中)通过管道传送给 Get-Service。






另请参阅




目录