Temporäres deaktivieren eines Accounts

Ich möchte diesen Blogbeitrag einer organisatorischen Hürde widmen, die in einer Exchange-Umgebung immer mal wieder auftritt. Konkret geht es um jene Benutzer in der Domäne, welche temporär deaktiviert und deren E-Mail-Account nicht endgültig gelöscht werden soll.

Hierzu ein Beispiel: Mitarbeiter A besitzt ein Domänen-Konto mit einer Mailbox auf dem Exchange-Server. Seine Mailbox enthält benutzerspezifische Einstellungen, wie zum Beispiel speziell gesetzte Berechtigungen und ein erhöhtes Quota-Limit. Dieser Mitarbeiter wird nun aufgrund eines längeren Auslandsaufenthalts freigestellt. Der Mitarbeiter hat seine Rückkehr zur Firma angekündigt, jedoch nannte er keinen festen Termin.
Der zuständige Personalverantwortliche beauftragt die Administratoren sich mit folgender Fragestellung auseinanderzusetzen:

„Wie gestalten wir die Zugriffsrechte auf die Domäne für den Mitarbeiter?“

Im Active Directory-Umfeld sind einige Punkte zu beachten:

  • Dem Account kann das Einloggen zur Domäne verweigert werden.

  • Der Account wird deaktiviert, kann allerdings nach 180 Tagen nicht mehr reaktiviert werden, da Microsoft bzw. das Active Directory hier ein Löschvorgang einleitet.

  • Beim Deaktivieren spalten wir die Exchangedaten des Accounts von den Benutzerkontodaten.

  • Das temporäre Deaktivieren des Accounts ist mit Hausmitteln nicht direkt möglich.

  • Mailbox und Domänenaccount sind verbunden, müssen aber separat gelöscht werden.

Der Personalverantwortliche hätte gerne eine Lösung, welche dem Mitarbeiter das Fortführen seiner Arbeit nach dem Urlaub erleichtert und kein Neuerstellen seines Accounts benötigt. Während des Urlaubs soll er sich zwar nicht mehr einloggen können, jedoch soll ihm der Zugang zu seinen alten Mails gewährt werden, ohne Möglichkeit neue Mails zu empfangen oder zu versenden.

Anforderungen:

  • Der Account soll, aufgrund der Trennung von Userobjekt und Exchangeobjekt, nicht mit AD-Mitteln „gelöscht“ oder „deaktiviert“ werden.

  • Die Mailbox soll für den User erreichbar sein, ohne weitere Mails empfangen oder senden zu können.

  • Sender/Empänger von Mails sollen über die Situation des Mitarbeiters benachrichtigt werden, um Missverständnisse aus dem Weg zu räumen.

  • Der Account soll sich nicht mehr an den Workstations oder Remote anmelden können.

Um dieses Vorhaben zu realisieren, kann per PowerShell ein Skript geschrieben werden. Jedoch wollen wir heute den Weg mit Mitteln beschreiten, die uns über die Oberfläche zugänglich sind.
Hierzu werden folgende Schritte durchgeführt:

  1. Account wird im Users & Computers bearbeitet, damit das Einloggen nicht mehr möglich ist.

  2. Auf dem Exchange werden zwei Transportregeln erstellt.

  3. Der User wird mit einem Attribut versehen, welches die Transportregeln anwendbar macht.


Diese Schritte sind ebenfalls per PowerShell ausführbar und werden in Skriptblöcken am Ende zusammengefasst.

User & Computers: Einloggen verhindern

  1. Im Users & Computers suchen wir den entsprechenden Nutzer.

  2. Nun öffnen wir mit einem Rechtsklick die Optionen und navigieren zum Reiter „Account“.

  3. Danach klicken wir auf „Logon Hours…“ um folgendes Fenster zu erhalten:

Abbildung 1: „Logon Hours Standard“

Abbildung 1: „Logon Hours Standard“

In diesem Fenster wollen wir nun den Login zu jeder Zeit verbieten. Damit dies gelingt, sollte das Fenster wie folgt aussehen:

Abbildung 2: „Logon Hours: Kein Login mehr erlaubt“

Abbildung 2: „Logon Hours: Kein Login mehr erlaubt“

Hiernach bestätigten wir mit „OK“ die Auswahl.

Transportregeln auf dem Exchange erstellen

Wir navigieren zu einem Exchange und öffnen das ECP (Exchange 2013 in diesem Fall).

Unter dem Menüpunkt Nachrichtenfluss ist folgendes Fenster zu sehen:

Abbildung 3: Exchange-Ansicht für den Menüpunkt Nachrichtenfluss

Abbildung 3: Exchange-Ansicht für den Menüpunkt Nachrichtenfluss

Wir klicken auf das Plus und legen unter dem Reiter „Regeln“ eine neue Transportregel an.
Wir erstellen hierbei zwei Regeln. Eine für das Versenden und das Empfangen.
Zuerst wollen wir die Regel für das Versenden erstellen.

Abbildung 4: Exchange - Neue Regel erstellen

Abbildung 4: Exchange - Neue Regel erstellen

Für die neue Regel sind folgende Einstellungen wichtig:

  • Diese Regel anweden, wenn….
    Hier wählen wir aus: „Die angegebenen Eigenschaften des Absenders enthalten eines dieser Wörter…“.

  • Das Attribut, auf welches die Regel hören soll, ist frei wählbar. In diesem Fall wählen wir das bereits vorhandene „CustomAttribut1“ und definiere „disabled“ als Schlagwort.

  • Unter „Folgendermaßen vorgehen…“ wählen wir „Nachricht mit Erklärung ablehnen“.

  • Unter Nachricht habe ich zum Beispiel folgenden Text verfasst:
    Dein Account ist zurzeit deaktiviert. Bitte wende dich an die zuständige IT-Abteilung“.

  • Unter Eigenschaften dieser Regel müssen wir nichts verändern.

  • Unter Modus für diese Regel auswählen, wird von uns erzwingen gewählt.

  • Hiernach wird die Regel erstellt und im Auswahl-Fenster wie in Abbildung 3. sichtbar erneut eine Transportregel erstellt.

Nun erstellen wir die neue Regel, diesmal für das Empfangen von Mails für die betroffenen Nutzer.  In diesem Fall wollen wir eine Benachrichtigung für den Versender, dass der Empänger der Mail nicht mehr in der Firma vorhanden ist und die Mail aktuell nicht zugestellt werden kann.

Die Regel für das Empfangen sieht wie folgt aus:

Abbildung 5: Exchange- Transportregel für das Empfangen von Mails

Abbildung 5: Exchange- Transportregel für das Empfangen von Mails

Die Einstellungen für die Empfangen-Regel:

  • „Diese Regel anwenden, wenn…“
    Nun wählen wir die Option „Die vom Empfänger angegebene Eigenschaft einhalten eines dieser Wörter…“. Das Attribut ist hierbei dasselbe wie bei der ersten Regel. Wir wählen das CustomAttribut1 und das Schlagwort soll „disabled“ sein.

  • „*Folgendermaßen vorgehen…“
    Hier wird erneut „Nachricht mit Erklärung ablehnen…“ gewählt. In meinem Beispiel habe ich folgenden Text gewählt: „Dieser User ist zurzeit deaktiviert und hat Ihre Nachricht nicht erhalten“. Diese Nachricht wird dem Sender der Mail zurückgeliefert.

  • Ansonsten sind die Einstellungen analog zur ersten Regel.

Nun haben wir zwei Regeln erstellt, welche das Senden und Empfangen eines Mailbox-Besitzers unserer Umgebung mit einer Benachrichtigung verhindern. Dies passiert nur, wenn für den User das „CustomAttribut1“ mit dem Text „disabled“ belegt ist. Im weiteren Verlauf belegen wir nun für einen User dieses Attribut mit dem Text disabled.

User-Attribute setzten

Wir navigieren zur ECP im Exchange und rufen das Userverzeichnis auf.

Wir wählen den entsprechenden Nutzer und öffnen seine Eigenschaften im Exchange.

Abbildung 6: Exchange - Userübersicht

Abbildung 6: Exchange - Userübersicht

In der Übersicht klicken wir auf „Weitere Optionen …“, welches in Blau gefasst im unteren Bereich verfügbar ist.

Hier gibt es die Möglichkeit die Benutzerattribute einzusehen und zu setzen.

Abbildung 7: Exchange- Userattribute

Abbildung 7: Exchange- Userattribute

Hier legen wir über das „Bearbeiten-Zeichen“ ein Neues an.

Abbildung 8: Exchange- Neues UserAttribut

Abbildung 8: Exchange- Neues UserAttribut

Hierbei wählen wir die Nummer 1, da dieser Index dem „CustomAttribut 1“ entspricht und setzen den Text „disabled“ in das Attribut, wie in den Regeln unsererseits definiert.

Nun ist es dem User nicht mehr gestattet weitere E-Mails im Namen der Firma zu senden und zu empfangen. Zusätzlich haben wir die Außenwelt über die derzeitige Situation des Nutzers informiert.

Zusammenfassung

 Durch die Einstellungen ist es nun möglich dem Nutzer den Zugang zu seinem Profil zu verwehren, indem wir in Kapitel „User & Computers: Einloggen verhindern“ die Zeiten, zu denen sich der User einloggen kann, verändert haben. Im anschließenden Kapitel „Transportregeln auf dem Exchange erstellen“ haben wir mailboxseitig die Vorkehrungen getroffen zukünftig allen Usern, welche ein benutzerspezifisches Attribut besitzen, den Mailempfang und -versand zu verwehren.
Wie das Attribut gesetzt wird, ist im Kapitel „User-Attribute setzen“ beschrieben.
Die beschriebene Methode hat folgende Vorteile:

  • Alle Änderungen der Mailbox (Quota/Rechte) bleiben erhalten und müssen nicht bei erneuter Ankunft des Nutzers neuangefordert werden.

  • Durch die Benachrichtigung des Senders über den Verbleib des Mitarbeiters werden potentiell wichtige Informationen nicht mehr an den User gerichtet und die Abteilung kann mögliche neue Kontaktinformationen für den neuen Verantwortlichen verteilen.

  • Der Nutzer kann weiterhin seine alten Mails behalten und ist bei Wiederverfügbarkeit in der Lage Informationen aus Altdaten zu beziehen.

  • Wir haben nicht die Gefahr, dass der Container mit Exchangeinformationen vom Userobjekt im AD getrennt wird (Durch die Aktion „disable“ im Users & Computers). 

Skriptbasierte Umsetzung (PowerShell)

In diesem Kapitel wollen wir besprechen wie wir diesen Vorgang per Skript umsetzen.
Die zwei Transportregeln werden von uns aufgrund der Übersichtlichkeit per GUI gesetzt. Dieses Kapitel bezieht sich auf die skriptbasierte Umsetzung der Kapitel „User & Computers: Einloggen verhindern“ und  „User-Attribute setzten“ .

User & Computers: Einloggen verhindern

Die Tabelle in Abbildung 1 und 2 können wir auch mit PowerShell setzen. Hierzu muss folgender Befehl durchgeführt werden:

Zuerst setzen wir das Array für die Zeittabelle mit der Variable $hours.

[byte[]]$hours = @(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)     

Hiernach können wir mit Get-ADUser und dem Namen die Einstellungen beziehen und mit einer Pipe und Set-ADUser die Einstellung für „logonhours“ verändern, indem wir das Array mit unserem $hours-Array ersetzen:

Get-ADUser -Identity $name | Set-ADUser -Replace @{logonhours = $hours}    

Wir können die Aktion auch wieder zurücksetzen und den Login erneut erlauben. Hierzu muss das Array $hours abgeändert werden und der AD-Userbefehl erneut ausgeführt werden:

[byte[]]$hours = @(255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255)  
Get-ADUser -Identity $name | Set-ADUser -Replace @{logonhours = $hours}

User-Attribute setzen

Die CustomAttribute können ganz einfach mit dem PowerShell-Modul für Exchange bzw. der Exchange ManagementShell gesetzt werden. Hierzu muss folgender Befehl ausgeführt werden:

Wir setzen das Attribut „disabled“ für die Mailbox (Die Transportregeln greifen nun für diese Mailbox):

Set-Mailbox -Identity $name -CustomAttribute1 "disabled" 

Hiermit entfernen wir das Attribut um den Mailflow erneut zu gewährleisten:

Set-Mailbox -Identity $name -CustomAttribute1 ""  

Damit sind diese Funktionalitäten auch per Skript abbildbar, um z.b eine CSV- oder Text-Datei mit Benutzernamen einzulesen und abzuarbeiten.