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?
Please also mark the comments that contributed to the solution of the article
Content-Key: 9328202265
Url: https://administrator.de/contentid/9328202265
Printed on: April 28, 2024 at 15:04 o'clock
2 Comments
Latest comment
$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>"