C# - 如果使用管道(|),Powershell在使用invoke-command时不会返回任何内容。
C# - 如果使用管道(|),Powershell在使用invoke-command时不会返回任何内容。
在PowerShell中,Write-Host和Write-Output有什么区别?
例如...
Write-Host "Hello World"; Write-Output "Hello World";
问题的原因是,当在PowerShell中使用Write-Host
命令并将结果通过管道传递给其他命令时,Invoke-Command
不会返回任何内容。这是因为Write-Host
命令不会将数据作为对象发送到管道,而是将数据直接写入信息流。
解决这个问题的方法是改用Write-Output
命令来发送数据。Write-Output
命令将数据作为对象发送到管道,可以正确地将结果传递给其他命令。
以下是修复该问题的示例代码:
Invoke-Command -ComputerName Server01 -ScriptBlock { Write-Output "Hello, World!" } | ForEach-Object { # 处理传递过来的数据 Write-Output "Received: $_" }
在上述示例中,我们使用Write-Output
命令发送数据,并通过管道将结果传递给ForEach-Object
命令进行处理。通过这种方式,我们可以正确地获取到从Invoke-Command
返回的数据。
希望这篇文章能够帮助你理解并解决在使用Invoke-Command
时遇到管道传递数据的问题。