Aktionen

Citrix XenDesktop per PowerShell Commandline abfragen

Aus znilwiki

Hier sammle ich alle Befehle um später per Zabbix den Status einer Citrix-XenDesktop Umgebung zu überwachen.



Delivery Controller

Die nachfolgenden Beispiele wurde alle auf einem "Delivery Controller" ausgeführt.


Unregistrierte Desktops

Wir prüfen immer nur alle Systeme die auch eingeschaltet sind.

Get-BrokerDesktop -RegistrationState "Unregistered" -PowerState On

Umgekehrt abgefragt, also alle die nicht auf "Registered" stehen:

Get-BrokerDesktop -Filter { RegistrationState -ne 'Registered' } -PowerState On


Hängen wir ein Measure-Object dran so bekommen wir die Anzahl der Objekte - also hier die Desktops:

Get-BrokerDesktop -Filter { RegistrationState -ne 'Registered' } -PowerState On | Measure-Object 

Leider ist das dann noch nicht im Zabbix-Format - als Übersicht aber schon gut.

Für Zabbix brauchen wir nur einen einzelnen Rückgabewert - also nur die Anzahl, sonst nichts. Und war auch wenn da "nichts" ist.
Die PowerShell gibt z.B. nichts zurück wenn da kein Objekt ist - dann brauchen wir aber eine "0".

Ich habe deshalb einen PowerShell Einzeiler gebaut der schlichtweg die Objekte zählt:

powershell asnp Citrix.* ; $iNotRegistered = 0 ; "Get-BrokerDesktop -Filter { RegistrationState -ne 'Registered' } -PowerState On | ForEach-Object { $iNotRegistered = $iNotRegistered + 1} ; Write-Output $iNotRegistered"

Die Variable $iNotRegistered wird zunächst auf 0 gesetzt und dann für jeden vorhandenen, nicht registrierten, Desktop um 1 erhöht.




Registrierte Desktops

Das gleiche wie zuvor, nur das wir nach den registrierten Desktops fragen:

Get-BrokerDesktop -RegistrationState 'Registered' -PowerState On

Und noch mal Zabbix-Konform nur die Anzahl:

powershell asnp Citrix.* ; $iRegistered = 0 ; "Get-BrokerDesktop -RegistrationState 'Registered' -PowerState On | ForEach-Object { $iRegistered = $iRegistered + 1} ; Write-Output $iRegistered"




Kommentare

Loading comments...