Verlässt ein Benutzer das Unternehmen, so wird oft das Exchange-Mailkonto gelöscht und der Benutzeraccount gesperrt.
Dadurch kann der ehemalige Benutzer zwar nicht mehr auf Firmendaten zugreifen, in der Global Address List (GAL) wird er dennoch für interne Mitarbeiter angezeigt. Er kann weiterhin im Adressbuch ausgewählt werden und ist im Teamkalender sichtbar.
Das liegt daran, dass der Account noch vorhanden ist und das Attribut msExchHideFromAddressLists keinen Wert enthält.
Wird das Attribut auf TRUE gesetzt, wird der Benutzer weder in der Global Address List noch in Kalendergruppen angezeigt.
Um die Arbeit mit deaktivierten Usern zu vereinfachen, eignen sich die hier beschriebenen PowerShell CMDlets.
Zu jeder Zeit die Übersicht behalten
Welche deaktivierten User tauchen noch im Adressbuch auf?
Um herauszufinden, welche User deaktiviert wurden, aber noch im GAL erscheinen, kann man das folgende CMDlet verwenden:
1 2 3 4 |
Get-ADUser ` -Filter {(enabled -eq "false") -and (msExchHideFromAddressLists -notlike "*")} ` -SearchBase "OU=<OrganisationalUnit>,DC=<Domain>,DC=<TLD>"` -Properties enabled,msExchHideFromAddressLists |
Welche deaktivierten User werden nicht mehr angezeigt?
Will man alle deaktivierten User herausfinden, bei denen das Attribut schon verändert wurde – die also nicht mehr im GAL auftauchen – ist dieser Befehl hilfreich:
1 2 3 4 |
Get-ADUser ` -Filter {(enabled -eq "false") -and (msExchHideFromAddressLists -like "*")} ` -SearchBase "OU=<OrganisationalUnit>,DC=<Domain>,DC=<TLD>"` -Properties enabled,msExchHideFromAddressLists |
Einzelne User aus dem Adressbuch ausblenden
Einen einzelnen User, dessen Usernamen man kennt, kann man mit diesem Befehl ausblenden:
1 |
Set-ADUser <Username> -Add @{msExchHideFromAddressLists="TRUE"} |
Das kann zum Beispiel hilfreich sein, wenn man ein Script erstellt hat, um ehemalige User zu deaktivieren. Den Usernamen kann man in diesem Fall auch in einer Variablen übergeben.
Deaktivierte Benutzer automatisiert ausblenden
Um diese Tätigkeit zu erleichtern, kann man eine geplante Aufgabe (scheduled Task) erstellen. Hierbei werden alle deaktivierten Benutzer, die noch im GAL angezeigt werden, herausgesucht und anschließend wird das msExchHideFromAddressLists Attribut auf TRUE gesetzt.
1 2 3 4 5 |
Get-ADUser ` -Filter {(enabled -eq "false") -and (msExchHideFromAddressLists -notlike "*")} ` -SearchBase "OU=<OrganisationalUnit>,DC=<Domain>,DC=<TLD>"` -Properties msExchHideFromAddressLists | ` Set-ADUser -Add @{msExchHideFromAddressLists="TRUE"} |
-xyra
http://miriamxyra.com – Miriam Wiesner
Halo Frau Wiesner,
herzlichen Dank für Ihre Ausführungen.
Eine Frage hierzu:
Wenn ich die Sesarchbase anpasse, auf z.B.:
Get-ADUser
-Filter {(enabled -eq "false") -and (msExchHideFromAddressLists -notlike "*")}
-SearchBase „OU=89_Disabled,DC=XX,DC=XX,DC=XX“
-Properties msExchHideFromAddressLists |
Set-ADUser -Add @{msExchHideFromAddressLists=“TRUE“}
und das Skript ausführe,
werden dann nur die in der OU angegebenen User „verarbeitet“ ?