PowerShell Script CITRIX disabled User Accounts
Hallo zusammen,
ich habe mir eine Augabe erstellt die meine aktuellen Fähigkeiten von Powershell übersteigt
Wir verwenden CITRIX mit vielen virtuellen Desktops, leider ist der Workflow beim Austritt eines Users nicht so sauber als das ich das mitbekomme.
Daher die Idee ein Script laufen zu lassen das mir von allen virtuellen Desktops die Usernamen in eine Variable schreibt und diese dann gegen die AD geprüft wird
ob der Useraccount deaktiviert ist.
Damit hätte ich alle UPN´s der User in der Variable $machines
Nun kommt der Teil wo ich mir nicht sicher bin ob ich dafür die Variable verwenden kann.
Jetzt will ich die Namen gegen die AD prüfen und den Account State prüfen.
Wenn der Wert Enabled = false ist würde es bedeuten der User ist deaktiviert und ich würde darüber gerne eine Mail haben.
Mail Versand bekomme ich hin.
Wie mache ich jetzt die Abfrage mit der Verwendung der Variable $machines?
Oder muss ich erst den Output von $machines in eine .txt oder .csv schreiben und dann wieder importieren?
Danke euch für die Hinweise
ich habe mir eine Augabe erstellt die meine aktuellen Fähigkeiten von Powershell übersteigt
Wir verwenden CITRIX mit vielen virtuellen Desktops, leider ist der Workflow beim Austritt eines Users nicht so sauber als das ich das mitbekomme.
Daher die Idee ein Script laufen zu lassen das mir von allen virtuellen Desktops die Usernamen in eine Variable schreibt und diese dann gegen die AD geprüft wird
ob der Useraccount deaktiviert ist.
$DeliveryController = "deliverycontroller.local"
Add-PSSnapin Citrix*
$machines = Get-BrokerMachine -AdminAddress $DeliveryController | select {$_.AssociatedUserUPNs}
Damit hätte ich alle UPN´s der User in der Variable $machines
Nun kommt der Teil wo ich mir nicht sicher bin ob ich dafür die Variable verwenden kann.
Jetzt will ich die Namen gegen die AD prüfen und den Account State prüfen.
Wenn der Wert Enabled = false ist würde es bedeuten der User ist deaktiviert und ich würde darüber gerne eine Mail haben.
Mail Versand bekomme ich hin.
Search-ADAccount -AccountDisabled
Wie mache ich jetzt die Abfrage mit der Verwendung der Variable $machines?
Oder muss ich erst den Output von $machines in eine .txt oder .csv schreiben und dann wieder importieren?
Danke euch für die Hinweise
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 424775
Url: https://administrator.de/forum/powershell-script-citrix-disabled-user-accounts-424775.html
Ausgedruckt am: 09.01.2025 um 00:01 Uhr
7 Kommentare
Neuester Kommentar
Hi,
Warum die "" ?
Warum die "" ?
Moin,
ich würde es andersherum machen:
Ungetestet, da ich hier kein Citrix habe.
hth
Erik
ich würde es andersherum machen:
$disabled_users = search-adaccount -accountdisabled
$domain = $(get-addomain).dnsroot
foreach($user in $disabled_users) {
$upn = "$user.samaccountname@$domain"
if($(get-brokermachine -adminaddress $DeliveryController --AssociatedUserUPN $upn)) {
# Hier dann das, was passieren soll, wenn der User deaktiviert ist, aber noch in Citrix aktiv
}
}
Ungetestet, da ich hier kein Citrix habe.
hth
Erik
Zitat von @TheOnlyOne:
Es wäre allerdings dann so das er die komplette AD nach deaktivierten Usern durchsucht.
Nein. Standardmäßig nur die aktuelle Domäne bzw. unterhalb von "SearchBase"Es wäre allerdings dann so das er die komplette AD nach deaktivierten Usern durchsucht.
Erst wenn man als "Server" einen GC angibt, sucht er im gesamten AD.
Bei rund 5000 AD Objekten ist es halt eine sehr lange laufzeit?
Wieso? Was soll er denn in der zweiten Sekunde tun?Bei uns dauert das bei >5000 Konten nur 2-3 Sekunden.
Moin,
Das ist auch meine Erfahrung. Über die Laufzeit würde ich mir hier noch keine Sorgen machen. Ich schätze so wie @emeriks, dass das so zwei Sekunden dauert, bis das Ergebnis da ist.
Liebe Grüße
Erik
Zitat von @emeriks:
Wieso? Was soll er denn in der zweiten Sekunde tun?
Bei uns dauert das bei >5000 Konten nur 2-3 Sekunden.
Wieso? Was soll er denn in der zweiten Sekunde tun?
Bei uns dauert das bei >5000 Konten nur 2-3 Sekunden.
Das ist auch meine Erfahrung. Über die Laufzeit würde ich mir hier noch keine Sorgen machen. Ich schätze so wie @emeriks, dass das so zwei Sekunden dauert, bis das Ergebnis da ist.
Liebe Grüße
Erik