サーバリスト内の一連のサーバをループして、それぞれのものを出力するスクリプトを継承しました。それはStringBuilderを使用して変数に物を追加し、結果を吐き出します。どのようにして、foreach全体の結果を印刷する代わりにVERYの最後に表示できるように、コンテンツを格納するスクリプトを取得しますか?その後、各繰り返しで上書きしますか?各実行中ではなくforeachの最後ですべての結果を出力します
現在、私の結果は次のようになります。
ServerName1
Text1
次の実行:私はそれを電子メールで送信することができますので、私はそれがデータを格納するために取得し、最後に出力以下にするにはどうすればよい
ServerName2
Text 2
?
ServerName1
Text1
ServerName2
Text2
マイコード:
foreach($Machine in $Machines)
{
Invoke-Command -ComputerName $Machine -ScriptBlock{param($XML1,$XML2,$XML3,$URL)
[System.Text.StringBuilder]$SB = New-Object System.Text.StringBuilder
$X = $SB.AppendLine($env:COMPUTERNAME)
if (Test-Path <path>)
{
$PolResponse = <somestuff>
$PolResponse2 = <somestuff>
Write-Host "[1st] $PolResponse" -ForegroundColor Magenta
Write-Host "[2nd] $PolResponse2" -ForegroundColor Magenta
$X = $SB.AppendLine($PolResponse)
$X = $SB.AppendLine($PolResponse2)
}
else
{
$PolResponse = "[1st] No Response"
$PolResponse2 = "[2nd] No Response"
Write-Host $PolResponse -ForegroundColor Red
Write-Host $PolResponse2 -ForegroundColor Red
$X = $SB.AppendLine($PolResponse)
$X = $SB.AppendLine($PolResponse2)
}
} -ArgumentList $XML1, $XML2, $XML3, $URL
}
# Sending result email
<<I want to send the TOTALITY of $SB here>>
ありがとう@codemaker。電子メールで問題を通知するための基本的なスクリプトを完成させなければならなかったので、これを修正するためにこれを再訪するとき、私は間違いなくこれを試してみます。 – Ilya