Get-Service
获取计算机上的服务。
语法
Get-Service
[[-Name] <String[]>]
[-DependentServices]
[-RequiredServices]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Service
[-DependentServices]
[-RequiredServices]
-DisplayName <String[]>
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Service
[-DependentServices]
[-RequiredServices]
[-Include <String[]>]
[-Exclude <String[]>]
[-InputObject <ServiceController[]>]
[<CommonParameters>]
说明
该 Get-Service
cmdlet 获取表示计算机上的服务的对象,包括正在运行和停止的服务。 默认情况下,在没有 Get-Service
参数的情况下运行时,将返回所有本地计算机的服务。
可以通过指定服务名称或服务的显示名称来指示此 cmdlet 仅获取特定服务,也可以通过管道将服务对象传递给此 cmdlet。
示例
示例 1:获取计算机上的所有服务
此示例获取计算机上的所有服务。 它的行为就像你键入的 Get-Service *
。 默认显示将显示每个服务的状态、服务名称和显示名称。
Get-Service
示例 2:获取以搜索字符串开头的服务
此示例检索以 WMI 开头的服务名称 (Windows Management Instrumentation) 。
Get-Service "wmi*"
示例 3:显示包含搜索字符串的服务
此示例显示包含单词网络的显示名称的服务。 搜索显示名称会查找与网络相关的服务,即使服务名称不包含 Net,例如 xmlprov,网络预配服务也是如此。
Get-Service -Displayname "*network*"
示例 4:获取以搜索字符串和排除项开头的服务
此示例仅获取以 win 开头的服务名称的服务,而 WinRM 服务除外。
Get-Service -Name "win*" -Exclude "WinRM"
示例 5:显示当前处于活动状态的服务
此示例仅显示状态为“正在运行”的服务。
Get-Service | Where-Object {$_.Status -eq "Running"}
Get-Service
获取计算机上的所有服务,并将对象发送到管道中。 该 Where-Object
cmdlet 仅选择状态属性等于“正在运行 ” 的服务。
Status 是服务对象的唯一属性。 若要查看所有属性,请键入 Get-Service | Get-Member
。
示例 6:列出具有依赖服务的计算机上的服务
此示例获取具有依赖服务的服务。
Get-Service |
Where-Object {$_.DependentServices} |
Format-List -Property Name, DependentServices, @{
Label="NoOfDependentServices"; Expression={$_.dependentservices.count}
}
Name : AudioEndpointBuilder
DependentServices : {AudioSrv}
NoOfDependentServices : 1
Name : Dhcp
DependentServices : {WinHttpAutoProxySvc}
NoOfDependentServices : 1
...
该 Get-Service
cmdlet 获取计算机上的所有服务,并将对象发送到管道中。 该 Where-Object
cmdlet 选择 其 DependentServices 属性不为 null 的服务。
结果将向下 Format-List
发送到 cmdlet。 Property 参数显示服务的名称、依赖服务的名称以及显示每个服务的依赖服务数的计算属性。
示例 7:按属性值对服务进行排序
本示例显示,按 “状态” 属性的值按升序对服务进行排序时,运行服务之前会显示已停止的服务。 原因是 状态 值是一个枚举,其中“停止”的值为 1,而“正在运行”的值为 4。 有关详细信息,请参阅 ServiceControllerStatus。
若要首先列出正在运行的服务,请使用 cmdlet 的Sort-Object
降序参数。
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
示例 8:获取服务的依赖服务
此示例获取 WinRM 服务所需的服务。 返回服务的 ServicesDependedOn 属性的值。
Get-Service "WinRM" -RequiredServices
示例 9:通过管道操作员获取服务
此示例获取本地计算机上的 WinRM 服务。 服务名称字符串(括在引号中)将管道 Get-Service
发送到 。
"WinRM" | Get-Service
参数
-DependentServices
指示此 cmdlet 仅获取依赖于指定服务的服务。
Type: | SwitchParameter |
Aliases: | DS |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisplayName
指定要检索的服务的显示名称,作为字符串数组。 允许使用通配符。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Exclude
指定此 cmdlet 从操作中排除的服务或服务作为字符串数组。
此参数值使 Name 参数有效。 输入名称元素或模式,例如 s*
。 允许使用通配符。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
指定此 cmdlet 包含在操作中的服务或服务作为字符串数组。 此参数值使 Name 参数有效。 输入名称元素或模式,例如 s*
。 允许使用通配符。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
指定表示要检索的服务的 ServiceController 对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。 可以通过管道将服务对象传递给此 cmdlet。
Type: | ServiceController[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
指定要检索的服务的名称。 允许使用通配符。
Type: | String[] |
Aliases: | ServiceName |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-RequiredServices
指示此 cmdlet 仅获取此服务所需的服务。 此参数获取服务的 ServicesDependedOn 属性的值。
Type: | SwitchParameter |
Aliases: | SDO, ServicesDependedOn |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
输入
System.ServiceProcess.ServiceController, System.String
可以通过管道将服务对象或服务名称传递给此 cmdlet。
输出
此 cmdlet 返回表示计算机上的服务的对象。
备注
此 cmdlet 仅在 Windows 平台上可用。
从 PowerShell 6.0 开始,以下属性将添加到 ServiceController 对象: UserName、 Description、 DelayedAutoStart、 BinaryPathName 和 StartupType 。
还可以通过内置别名gsv
引用Get-Service
它。 有关详细信息,请参阅 about_Aliases。
仅当当前用户有权查看服务时,此 cmdlet 才能显示服务。 如果此 cmdlet 不显示服务,则可能无权查看这些服务。
若要查找系统上每个服务的服务名称和显示名称,请键入 Get-Service
。 服务名称显示在“名称”列中,显示名称显示在 DisplayName 列中。
按 Status 属性值按升序排序时,“正在运行”服务之前会显示“已停止的服务”。 服务的 Status 属性是一个枚举值,状态名称表示整数值。 排序顺序基于整数值,而不是名称。 由于“已停止”的值为 1,并且“正在运行”的值为 4,因此出现之前已停止。 有关详细信息,请参阅 ServiceControllerStatus。