Ergebnisse einer for-Schleife gesammelt ausgeben
Für unser Monitoring muss ich das Ergebnis einer For Schleife in Powershell am ende gesammelt ausgeben, da unser PRTG Monitoring das sonst nicht verarbeiten kann.
Mit diesem Code kommt PRTG am ende aber nicht da, da alle 27 abgefragten Server ihr Ergebnis einzeln, in der Schleife, an PRTG weitergeben.
Der Support schrieb mir nun, dass das gesammelt, in einem Befehl, hinter der Schleife, also am Ende des Scripts passieren muss
Wie bekomme ich denn alle Ergebnisse der Schleife am Ende je in einen Channel inkl. Result?
$server="IP1","IP2",....
foreach ($computer in $server) {
$remotePath= New-PSDrive –Name “X” –PSProvider FileSystem –Root “\\$computer\d$” -Credential $adminCredential
#Hier ist die Abfrage
#Ergebnis
if($comparisonResult -eq 'true'){
$result = '0'
} else {
$result = '1'
}
# Ausgabe des Vergleichsergebnisses
write-host $ServerDescription '-' $result
<#
write-host "<prtg>"
Write-Host "<result>"
Write-Host "<channel>$ServerDescription</channel>"
Write-Host "<value>$result</value>"
Write-Host "</result>"
write-host "</prtg>"
Remove-PSDrive –Name “X”
}
Mit diesem Code kommt PRTG am ende aber nicht da, da alle 27 abgefragten Server ihr Ergebnis einzeln, in der Schleife, an PRTG weitergeben.
Der Support schrieb mir nun, dass das gesammelt, in einem Befehl, hinter der Schleife, also am Ende des Scripts passieren muss
<prtg>
<result>
<channel>IP1</channel>
<value>0</value>
</result>
<result>
<channel>IP2</channel>
<value>0</value>
</result>
<result>
.
.
.
</result>
<text>CustomText</text>
</prtg>
Wie bekomme ich denn alle Ergebnisse der Schleife am Ende je in einen Channel inkl. Result?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 9328202265
Url: https://administrator.de/contentid/9328202265
Ausgedruckt am: 25.11.2024 um 05:11 Uhr
2 Kommentare
Neuester Kommentar
$server="IP1","IP2"
$channels = foreach ($computer in $server) {
$remotePath= New-PSDrive –Name "X" –PSProvider FileSystem –Root "\\$computer\d$" -Credential $adminCredential
# Hier ist die Abfrage
"<result>"
"<channel>$computer</channel>"
"<value>$(@{$true=0;$false=1}[$comparisonResult])</value>"
"</result>"
Remove-PSDrive –Name “X"
}
"<prtg>"
$channels
"</prtg>"