如何处理 Invoke-Command Scriptblock 输出?
当我们只写 Invoke-Command 时,它会在控制台上显示输出。
示例
Invoke-Command -ComputerName Test1-Win2k12 -ScriptBlock {Get-Service}输出

它显示了输出和计算机名称。
现在假设你想对输出进行排序,或者你想处理需要存储的输出。它类似于我们把输出存储在变量中,但我们不能存储在 scriptblock 中的输出并将它显示在外。
$ser = @()
Invoke-Command -ComputerName Test1-Win2k12 -ScriptBlock {$ser = Get-Service}
Write-Output "Services output"
$ser你不会得到上述命令的任何输出,因为 Invoke-Command 已知在远程计算机上工作。相反,我们可以使用 RETURN 命令将输出返回到主控制台。
$ser = @()
Invoke-Command -ComputerName Test1-Win2k12 -ScriptBlock {$ser = Get-Service
return $ser
}
Write-Output "Services output"
$ser你将得到第一张图片中显示的输出。如果你还想进一步处理输出,你还可以将整个输出存储在变量中。
示例
$sb = Invoke-Command -ComputerName Test1-Win2k12 -ScriptBlock { Get-Service}
Write-Output "Services output"
$sb
你还可以过滤上述输出。
$sb = Invoke-Command -ComputerName Test1-Win2k12 -ScriptBlock {Get-Service}
Write-Output "Services output"
$sb | Select Name, Status
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP