You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell 7.2.5中Get-Service无-ComputerName参数,如何获取计算机名?

PowerShell 7.x 替代 Get-Service -ComputerName 的方案

在PowerShell 7及以上版本中,Get-Service确实移除了-ComputerName参数,替代方法主要有两种:

方法一:使用 Invoke-Command 远程执行 Get-Service

通过Invoke-Command在远程机器上运行Get-Service,返回的结果会自动带上PSComputerName属性(即远程计算机名),直接用这个属性替代原来的MachineName即可:

Invoke-Command -ComputerName $computers -ScriptBlock { Get-Service -DisplayName $using:displayName } | 
    Sort-Object PSComputerName | 
    Format-Table Name, Status, DisplayName, PSComputerName -AutoSize
  • 注意$using:displayName的写法:用来在远程脚本块中引用本地定义的$displayName变量。
  • 该方法要求远程机器开启WinRM服务(默认在域环境中已配置,工作组环境可能需要手动开启并配置信任)。

方法二:使用 Get-CimInstance 调用 Win32_Service WMI 类

通过WMI/CIM直接查询远程机器的服务,Win32_Service类返回的对象包含SystemName属性(对应计算机名),State属性对应原Get-Service的Status:

Get-CimInstance -ClassName Win32_Service -Filter "DisplayName LIKE '%$displayName%'" -ComputerName $computers |
    Sort-Object SystemName |
    Format-Table Name, State, DisplayName, SystemName -AutoSize
  • 这里的Filter参数用LIKE匹配显示名称,如果你需要精确匹配,可以改成DisplayName = '$displayName'。
  • 同样依赖WinRM服务,和Invoke-Command的远程要求一致。

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 15:39:20