PowerShell 处理远程数据中的PSComputerName


不论什么时候,当你使用Invoke-Command远程执行PowerShell命令时,PowerShell都会智能地自动在返回结果中加上一个特殊的列PSComputerName。为什么需要多一次举呢?因为Invoke-Command命令支持一段代码在多个机器上同时运行。

Invoke-Command { Get-Service } -ComputerName Host1, Host2, HostC3

当然要确保这段代码能够运行,得打开远程PowerShell远程访问服务,可以通过搜索,本站在其它文章中已经提到过。

但是,可能会碰到这样的问题,使用Select-Object进行远程数据筛选时,PSComputerName 不会显示。

Invoke-Command { Get-Service } -ComputerName Host1, Host2, Host3 | Select-Object PSComputerName, Name, Status

要避免这样的问题发生,可以在Format-Table上下功夫,记得在讲哈希表的用法时,讲到过可以通过哈希表绑定表格的列,自定义表格的表头,此时也能派上用场.

 $remotePCName = @{

    Name = '远程机器名'

    Expression = { $_.PSComputerName }

  }

Invoke-Command { Get-Service } -ComputerName Host1, Host2, Host3 | Select-Object remotePCName, Name, Status

原文链接:http://powershell.com/cs/blogs/tips/archive/2012/09/28/controlling-pscomputername-in-remoting-data-with-powershell.aspx

本文链接: https://www.pstips.net/powershell-controlling-pscomputername-in-remoting-data.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注