如果你使用Invoke-Command 来远程执行PowerShell脚本,你可能注意到PowerShell远程返回的对象会自动添加一个PSComputerName属性来标识,该对象来自那一台机器。
细心的朋友们要犯嘀咕了,我让脚本在那台机器上执行难道我还不知道它是那台机器上的数据吗,干嘛要PowerShell多次一举呢?其根本原因是PowerShell的Invoke-Command 命令的参数-ComputerName既支持一个机器名,也可以支持一个机器列表。这样在返回的数据中添加机器标识总是情有可原了吧。
#requires -Version 2 $code = { Get-Process } Invoke-Command -ScriptBlock $code -ComputerName dc-01
然后当你尝试将上面代码的结果通过管道传递给Out-GridView命令时,PSComputerName命令消失了。这是什么鬼?今天分享一个变通的方法,使用Select-Object来收集结果,这样PSComputerName就不会凭空玩失踪了。
#requires -Version 2 $code = { Get-Process | Select-Object -Property Name, ID, Handles, CPU } Invoke-Command -ScriptBlock $code -ComputerName dc-01 | Out-GridView
原文链接:Fixing Remoting Sender Information
本文链接: https://www.pstips.net/fixing-remoting-sender-information.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!