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.



1 Delivery Controller

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


1.1 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.




1.2 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"




2 Kommentare


Marco.hofmann@login-online.de

57 Monaten zuvor
Punktzahl 0++
Hierbei geht es um XenDesktop 7.x, korrekt?

BLinz

57 Monaten zuvor
Punktzahl 0++

Moin, nun die PowerShell ist bei XenDesktop seit Version 5 dabei ... Ergo könnte es auch schon seit dieser Version funktionieren.

Bernhard

Alex

56 Monaten zuvor
Punktzahl 0++

Hallo,

wenn ich die Anzahl der Desktops mit Deinem comand abfrage, bekomme ich einen anderen Wert zurück (registered Desktops) als der der mir im Desktop Studio angezeigt wird. Weiß jemand warum? Ich habe auch schon sämtliche Filter rausgenommen.

Gruß Alex

BLinz

56 Monaten zuvor
Punktzahl 0++
Naja, ich habe in meinem Vorschlag oben gefiltert auf alle Maschinen die AN und REGISTRIERT sind.Du hast warscheinlich alle Maschinen, nicht nur die eingeschalteten. Das wäre dann z.B. auch das Template.

Frank

34 Monaten zuvor
Punktzahl 0++

Hallo,

ich möchte das comman get-brokerdesktop mit einem managedServiceAccount ausführen und bekomme immer AccessDenied. Was für Berechtigungen weden benötigt, um dieses Command auszuführen? Administrator ist der User auf dem Server bereits. Muss noch Zugriff auf irgendeine Datenbank bestehen?
Kommentar hinzufügen
znilwiki freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, trage deinen Namen oder deine Email-Adresse ein oder melde dich an. Du kannst das Feld auch einfach leer lassen.