Get-Service 帮助信息

本文介绍 PowerShell 中 Get-Service 命令的使用方法,包括获取本地计算机上的服务信息、通过服务名称或显示名称筛选服务等。并提供了实际应用场景示例。
如下说明是翻译PowerShell: help Get-Service 产生的帮助信息.
译者: Edengundam(马涛)
 
Get-Service
 
大纲
取得本地计算机上的服务.
 
语法
Get-Service [[-name] <string[]>] [-include <string[]>] [-exclude <string[]>] [<CommonParameters>]
 
Get-Service -displayName <string[]> [-include <string[]>] [-exclude <string[]>] [<CommonParameters>]
 
Get-Service [-inputObject <ServiceController[]>] [-include <string[]>] [-exclude <string[]>] [<CommonParameters>]
 
详细描述
Get-Service cmdlet取得表示本地计算机上服务的对象, 运行和停止的服务都回被返回. 你也可以直接通过为Get-Service指定服务的名称, 显示名称或者使用InputObject参数来指定表示你想要取得的服务的对象来取得特定的服务.
 
参数
 
-name <string[]>
指定要取得服务的服务名称. 允许使用通配符. 默认情况下, Get-Service返回计算机上所有的服务.
 
强制参数?
false
参数位置?
1
默认值
*
允许从管道绑定输入?
true (根据值, 根据属性名)
允许通配符扩展?
true
 
-include <string[]>
取得指定的服务. 此参数值用于限定参数Name. 输入一个名称元素或者模式, 例如"s*". 允许使用通配符.
 
强制参数?
false
参数位置?
named
默认值
 
允许从管道绑定输入?
false
允许通配符扩展?
true
 
-exclude <string[]>
忽略指定的服务. 此参数值用于限定参数Name. 输入一个名称元素或者模式, 例如"s*". 允许使用通配符.
 
强制参数?
false
参数位置?
named
默认值
 
允许从管道绑定输入?
false
允许通配符扩展?
true
 
-displayName <string[]>
指定要取得的服务的显示名. 允许使用通配符. 默认情况下, Get-Service返回计算机上所有的服务.
 
强制参数?
true
参数位置?
named
默认值
 
允许从管道绑定输入?
false
允许通配符扩展?
true
 
-inputObject <ServiceController[]>
指定要取得服务的ServiceController对象. 输入一个包含对象的变量, 或者一个能够产生对象的命令或表达式.
 
强制参数?
false
参数位置?
named
默认值
 
允许从管道绑定输入?
true (根据值)
允许通配符扩展?
true
 
<公共参数>
此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".
 
输入类型
Object
 
返回类型
System.ServiceProcess.ServiceController
 
注意
 
更多信息, 输入"Get-Help Get-Service -detailed". 需要技术信息, 输入"Get-Help Get-Service -full".
 
只用当前使用用户具有权限查看服务时, Get-Service才能显示服务. 如果Get-Service没有显示服务, 你可能没有权限查看服务.
 
要查找您系统上服务的服务名称和显示名称, 输入命令"get-service". 服务名称显示在列名为"Name"的列中, 显示名称显示在列名为"DisplayName"的列中.
 
如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".
 
你可以使用Get-Service内建别名"gsv". 需要更多信息, 查看About_Alias.
 
1
 
C:/PS>get-service
 
此命令显示系统上所有的服务. 他与你输入"get-service *"的行为相同. 默认将会显示每个服务的状态, 服务名称, 显示名称.
 
2
 
C:/PS>get-service wmi*
 
此命令返回所有服务名称以"WMI"开头的服务.
 
3
 
C:/PS>get-service -displayname *network*
 
此命令将会显示显示名称中包含"network."的服务. 此命令允许你找出服务名称中不包含"Net"关键字的网络相关的服务例如:xmlprov, the Network Provisioning Service.
 
4
 
C:/PS>$services = get-service
 
C:/PS>get-service -inputobject $Services -include RPC*
 
这些命令显示服务名称以"RPC"开头的所有服务. 第一个命令取得计算机上的服务, 将它们存储在变量$services. 第二个命令取得变量$services中的服务对象, 但是只取得那些以"RPC"开头的服务. 它使用了参数InputObject将存储在变量中的对象传递给Get-Service.
 
5
 
C:/PS>get-service | where-object {$_.Status -eq "Running"}
 
此命令显示正在运行的服务. 它使用Get-Service cmdlet取得计算机上所有的服务. 管道现运算符(|)将结果发送给Where-Object cmdlet, 后者选择那些服务状态属性为"Running."的服务.
 
状态只是服务对象的一个属性. 要查看所有的属性, 输入"get-service | get-member".
 
相关链接
Resume-Service
Start-Service
Stop-Service
Restart-Service
Suspend-Service
Set-Service
New-Service
<think> 我们遇到了在CMD中执行PowerShell命令的问题。用户当前在`C:\Windows\system32`路径下使用CMD执行了`Get-Service *docker* | Format-List Name, Status`,但CMD无法识别`Get-Service`命令,因为这是PowerShell命令。 解决方法:用户需要在PowerShell环境中执行该命令,或者使用CMD中可用的替代命令。 步骤1:在CMD中执行PowerShell命令的两种方法: 方法一:使用`powershell -command`前缀 方法二:切换到PowerShell环境再执行 步骤2:或者,使用CMD自带的`sc`命令来查询服务状态(但输出格式不同) 具体操作: 方法一(推荐):在CMD中直接调用PowerShell执行命令 ```cmd powershell -command "Get-Service *docker* | Format-List Name, Status" ``` 方法二:切换到PowerShell环境 1. 在CMD中输入`powershell`进入PowerShell环境 2. 然后执行命令: ```powershell Get-Service *docker* | Format-List Name, Status ``` 方法三:使用CMD的`sc`命令(但注意`sc`命令不支持通配符,需要知道服务的确切名称) 由于用户想查看所有包含docker的服务,我们可以使用以下命令: ```cmd sc query | findstr "docker" ``` 但是,这样只能列出服务名中包含docker的服务,并且不会显示状态(只会显示查询结果的一部分)。更详细的做法是使用`wmic`命令: ```cmd wmic service where "name like '%docker%'" get name, state ``` 因此,推荐使用方法一或方法二。 注意:如果用户没有以管理员身份运行CMD,可能会影响某些服务的查询(但通常查询docker服务不需要管理员权限)。 如果用户希望以后在CMD中也能使用类似PowerShell的命令,可以考虑将命令封装为批处理脚本。 最后,关于用户之前安装Docker Desktop的问题,如果用户已经按照之前的步骤操作,现在需要检查docker服务状态,那么上述命令将帮助用户确认服务是否运行。 如果用户发现docker服务没有运行,可以尝试在PowerShell中启动服务(需要管理员权限): ```powershell Start-Service com.docker.service ``` 生成相关问题: 1. 如何以管理员身份运行PowerShell? 2. 如何设置Docker服务开机自启? 3. 如何彻底卸载Docker Desktop并重新安装? 4. 在Windows中如何查看所有服务的状态? </think> ### 解决 `Get-Service` 命令不可用的问题 在 `C:\Windows\system32` 路径下执行 `Get-Service` 命令提示错误,说明您的环境变量配置异常或 PowerShell 模块缺失。以下是完整解决方案: #### 1. **检查 PowerShell 环境** ```cmd :: 验证 PowerShell 是否可用 powershell -command "Write-Host 'PowerShell 正常运行'" ``` - 若报错说明 PowerShell 损坏,需修复: ```cmd sfc /scannow :: 系统文件检查 ``` #### 2. **添加系统路径(关键步骤)** ```cmd :: 临时添加 PowerShell 模块路径 set PATH=%PATH%;C:\Windows\System32\WindowsPowerShell\v1.0 :: 重新执行命令 powershell -command "Get-Service *docker* | Format-List Name, Status" ``` #### 3. **永久修复环境变量** 1. 打开系统属性: ```cmd sysdm.cpl ``` 2. 选择【高级】→【环境变量】 3. 在 **系统变量** 中找到 `Path`,添加: ``` C:\Windows\System32\WindowsPowerShell\v1.0\ ``` 4. 重启命令提示符后重试命令 #### 4. **替代命令方案** ##### 使用 CMD 原生命令: ```cmd :: 列出所有 Docker 相关服务 sc query | findstr /i "docker" ``` 输出示例: ``` SERVICE_NAME: docker STATE : 4 RUNNING ``` ##### 使用 WMIC 工具: ```cmd wmic service where "name like '%docker%'" get name, state ``` #### 5. **检查 PowerShell 执行策略** ```cmd powershell -command "Get-ExecutionPolicy" ``` - 若返回 `Restricted`,需解除限制: ```cmd powershell -command "Set-ExecutionPolicy RemoteSigned -Force" ``` > **注意**:所有命令需在**管理员权限的命令提示符**中执行。若仍失败,建议[重装 PowerShell](https://aka.ms/install-powershell)。[^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值