Mehrere Dienste auf mehreren Servern abfragen
Hallo zusammen
Ich stecke gerade etwas fest und bräuchte mal ein klein bisschen Hilfe.
Folgendes Problem
Ich habe eine Liste von Servern mit (verschiedenen) Diensten die ich, per PowerShell, abfragen muss.
In meinem jugendlichen Leichtsinn hatte ich mir vorgestellt ich sende eine Anfrage an den Server und hole direkt die Information für alle Dienste ein.
Anstatt für jeden Deinst den Server erneut zu kontaktieren.
Und da ist auch schon das Problem, das funktioniert aktuell nur mit einem Dienst!
Hier mal ein Beispiel
Beispiel eins (funktioniert mit einem Dienst)
Nun ist es aber so, das ich am Anfang des Skripts eine Liste von Server und Diensten habe die ich prüfen muss
In einer "foreach"-Schleife terlege ich das dann in:
$hostname = ServerTwo
$services = 'Service005','Service003'
Wenn ich allerdings nun das Skript laufen lasse passiert rein gar nix.
Trage ich aber zum Beispiel mehrere Dienste namentlich, also ohne Variable, ein, dann bekomme ich ein Ergenis
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Kann mir jemand sagen warum das nicht funktioniert was ich vorhabe?
Danke im Voraus
Ralf
Ich stecke gerade etwas fest und bräuchte mal ein klein bisschen Hilfe.
Folgendes Problem
Ich habe eine Liste von Servern mit (verschiedenen) Diensten die ich, per PowerShell, abfragen muss.
In meinem jugendlichen Leichtsinn hatte ich mir vorgestellt ich sende eine Anfrage an den Server und hole direkt die Information für alle Dienste ein.
Anstatt für jeden Deinst den Server erneut zu kontaktieren.
Und da ist auch schon das Problem, das funktioniert aktuell nur mit einem Dienst!
Hier mal ein Beispiel
Beispiel eins (funktioniert mit einem Dienst)
$hostname = 'ServerOne'
$servics = 'Service001'
Get-Service -ComputerName $hostname | where { ( $_.Name -in $servics ) }
Nun ist es aber so, das ich am Anfang des Skripts eine Liste von Server und Diensten habe die ich prüfen muss
$services2check = @(
("ServerOne;Service001")
("ServerTwo;'Service005','Service003'")
)
In einer "foreach"-Schleife terlege ich das dann in:
$hostname = ServerTwo
$services = 'Service005','Service003'
Wenn ich allerdings nun das Skript laufen lasse passiert rein gar nix.
Trage ich aber zum Beispiel mehrere Dienste namentlich, also ohne Variable, ein, dann bekomme ich ein Ergenis
Get-Service -ComputerName $hostname | Where-Object { $_.Name -in 'Service005','Service003' }
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Kann mir jemand sagen warum das nicht funktioniert was ich vorhabe?
Danke im Voraus
Ralf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 579094
Url: https://administrator.de/contentid/579094
Ausgedruckt am: 05.11.2024 um 12:11 Uhr
6 Kommentare
Neuester Kommentar
Bidde
$services2check = [ordered]@{
"ServerOne" = @('Service001')
"ServerTwo" = @('Service005','Service003')
}
$services2check.GetEnumerator() | %{
Get-Service -ComputerName $_.Key -Name $_.Value
}
Moin,
Ich kann dir zwar nicht konkret helfen, aber das liest sich gerade, als wolltest du das Rad neu erfinden!?
Du schreibst zwar nichts genaueres über dein Vorhaben (was auch i.O. ist), aber könntest du nicht generell Tools wie Zabbix, Nagios, PRTG, ICINGA,... einsetzen...
Da wäre ja alles (ggf. mit Agents) schon fertig lauffähig...
Gruß
em-pie
Ich kann dir zwar nicht konkret helfen, aber das liest sich gerade, als wolltest du das Rad neu erfinden!?
Du schreibst zwar nichts genaueres über dein Vorhaben (was auch i.O. ist), aber könntest du nicht generell Tools wie Zabbix, Nagios, PRTG, ICINGA,... einsetzen...
Da wäre ja alles (ggf. mit Agents) schon fertig lauffähig...
Gruß
em-pie