如何處理 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