正文

Powershell获取系统中所有可停止的服务(powershell 获取时间)新鲜出炉

文章摘要

这篇文章介绍了如何使用 PowerShell(PS)的 Get-Service 命令来管理服务列表。虽然 Get-Service 可以显示已安装的服务,但无法直接获取所有运行或停止的服务。通过结合 Where-Object 语句,可以实现这一功能。 首先,文中展示了获取所有运行服务的基本语法: ```powershell PS> Get-Service | Where-Object Status -eq Running ``` 接着,介绍了获取所有可停止服务的代码: ```powershell PS> Get-Service | Where-Object CanStop ``` 此外,还提到了反向获取不可停止服务的语法: ```powershell PS> Get-Service | Where-Object CanStop -eq $false ``` 最后,文中还展示了如何结合条件判断,进一步筛选服务状态: ```powershell PS> Get-Service | Where-Object { !$_.CanStop -and $_.Status -eq 'Running' } ``` 这些方法提供了灵活的工具来管理和服务列表的状态。



适用于PS3.0及以后版本。

Get-Service能够显示你电脑上所有已安装的服务。可是没有哪个参数是获取仅运行或停止的服务。

配合简单的Where-Object语句,才可以解决这个问题。通常代码如下:

复制代码 代码如下:

PS> Get-Service | Where-Object Status -eq Running

基本上,Where-Object可以获得对象的任何属性并让你选择所需的条件。

如果你计划得到所有可停止的服务,则上面代码将做不到。有些服务可能在运行,但是不能够停止。通过修改,也是可以做到的。下面将产生一个列表显示可停止的服务。

复制代码 代码如下:

PS> Get-Service | Where-Object CanStop 

这里其实简化了,“CanStop”是一个布尔值(真或假),所以不再需要跟表达式。

所以要反向获取不能停止的服务,格式如下:

复制代码 代码如下:

PS> Get-Service | Where-Object CanStop -eq $false

当然也可以结合使用,格式如下:

复制代码 代码如下:

PS> Get-Service | Where-Object { !$_.CanStop -and $_.Status -eq ‘Running’ }