当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Get-Service (Microsoft.PowerShell.Management)

作者:精品下载站 日期:2024-12-14 02:12:07 浏览:14 分类:玩电脑

Get-Service (Microsoft.PowerShell.Management)


Get-Service

模块 :Microsoft.PowerShell.Management

获取计算机上的服务。

句法

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>]

描述

此 cmdlet 仅适用于 Windows 平台。

Get-Service cmdlet 获取代表计算机上服务的对象,包括正在运行和已停止的服务。默认情况下,当不带参数运行 Get-Service 时,将返回所有本地计算机的服务。

您可以通过指定服务名称或服务的显示名称来指示此 cmdlet 仅获取特定服务,也可以通过管道将服务对象传递给此 cmdlet。

示例

示例1:获取计算机上的所有服务

此示例获取计算机上的所有服务。它的行为就像您键入 Get-Service * 一样。默认显示显示每个服务的状态、服务名称和显示名称。

Get-Service

示例 2:获取以搜索字符串开头的服务

此示例检索服务名称以 WMI (Windows Management Instrumentation) 开头的服务。

Get-Service "wmi*"

示例 3:显示包含搜索字符串的服务

此示例显示显示名称包含单词 network 的服务。即使服务名称不包含 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 属性等于 Running 的服务。

状态只是服务对象的一种属性。要查看所有属性,请键入 Get-Service |获取会员。

示例 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:按属性值对服务进行排序

此示例显示,当您按服务的 Status 属性值对服务进行升序排序时,已停止的服务会出现在正在运行的服务之前。发生这种情况是因为 Status 的值是一个枚举,其中 Stopped 的值为 1,而 Running值为4。有关更多信息,请参阅ServiceControllerStatus。

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

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 仅获取依赖于指定服务的服务。

类型 :

SwitchParameter

别名:

DS

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

False

-DisplayName

以字符串数组形式指定要检索的服务的显示名称。允许使用通配符。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

False

接受通配符:

True

-Exclude

以字符串数组形式指定此 cmdlet 从操作中排除的一个或多个服务。此参数的值限定 Name 参数。输入名称元素或模式,例如 s*。允许使用通配符。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-Include

以字符串数组形式指定此 cmdlet 在操作中包含的一个或多个服务。此参数的值限定 Name 参数。输入名称元素或模式,例如 s*。允许使用通配符。

类型 :

String[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

True

-InputObject

指定代表要检索的服务的 ServiceController 对象。输入包含对象的变量,或键入获取对象的命令或表达式。您可以通过管道将服务对象传递给此 cmdlet。

类型 :

服务控制器[]

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

-Name

指定要检索的服务的服务名称。允许使用通配符。

类型 :

String[]

别名:

ServiceName

位置:

0

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

True

-RequiredServices

指示此 cmdlet 仅获取该服务所需的服务。此参数获取服务的 ServicesDependedOn 属性的值。

类型 :

SwitchParameter

别名:

SDO, ServicesDependedOn

位置:

命名

默认值:

False

必需的:

False

接受管道输入:

False

接受通配符:

True

输入

服务控制器

您可以通过管道将服务对象传递给此 cmdlet。

字符串

您可以通过管道将服务名称传递给此 cmdlet。

输出

服务控制器

此 cmdlet 返回表示计算机上的服务的对象。

笔记

PowerShell 包含以下 Get-Service 别名:

  • Windows:

      gsv

    此 cmdlet 仅在 Windows 平台上可用。

    从 PowerShell 6.0 开始,以下属性添加到 ServiceController 对象中:UserName描述DelayedAutoStartBinaryPathNameStartupType

    仅当当前用户有权查看服务时,此 cmdlet 才能显示服务。如果此 cmdlet 不显示服务,您可能无权查看它们。

    要查找系统上每个服务的服务名称和显示名称,请键入 Get-Service。服务名称显示在名称列中,显示名称显示在DisplayName列中。

    笔记

    通常,Get-Service 返回有关服务而不是驱动程序的信息。但是,如果您指定驱动程序的名称,Get-Service 将返回有关该驱动程序的信息。

    • 枚举不包括设备驱动程序服务
    • 指定通配符时,cmdlet 仅返回 Windows 服务
    • 如果您指定的 NameDisplayName 与设备服务名称完全匹配,则返回设备实例

    当您按状态值升序排序时,已停止 服务将显示在正在运行 服务之前。服务的状态属性是一个枚举值,其中状态名称表示整数值。排序基于整数值,而不是名称。 Running 出现在 Stopped 之前,因为 Stopped 的值为 1,而 Running 的值为 1值为4。有关更多信息,请参阅ServiceControllerStatus。

    您需要 登录账户 后才能发表评论

    取消回复欢迎 发表评论:

    关灯