Active Directory – Automatisch inaktive Computerkonten deaktivieren und E-Mail senden

Systembetreuer von Windows Domänen kennen das Problem. Wenn sich in kleineren Umgebungen nicht im Minimum ein Admin für das AD verantwortlich fühlt entsteht schnell ein Wildwuchs von Benutzer, Computern und Objekten. Auch ich stehe bei der Übernahme von Infrastrukturen häufiger vor dem Problem. Welche Konten sind noch aktiv und werden auch wirklich genutzt. Ein passendes Skript muss her. Hier am Beispiel von Computerkonten. Ein weiteres Skript für Benutzer folgt.

Dabei war die Erstellung schwieriger als gedacht. Die Wahl des passenden Cmdlet lag zwischen Get-AdComputer mit schönen Filtermöglichkeiten und Search-ADAccount. Leider bin ich vorerst mit Get-AdComputer am Attribut „lastlogondate“ gescheitert (Hier gibt es ein Update). Ich habe es nicht geschafft eine passende Schleife zu bauen. Einfacher geht es mit Search-ADAccount. Da ich vorhabe das Skript einmal im Monat automatisch zu starten musste noch ein E-Mail versandt angefügt werden. Und so sieht das dann aus:

Die Variable $logpath wird für das Protokoll und anschließend als Anlage für die Mail genutzt. Weiterhin zu setzen ist die Variable $searchbasecomputer welche den Suchpfad im DN-Format darstellt. Dieser ist mit der CMD auch einfach via

zu ermitteln. Die Variable $time gibt den Suchzeitraum der inaktiven Computer an und setzt sich zusammen aus TAG:STUNDE:MINUTE:SEKUNDE. Weiterhin wurden zwei IF-Bedingungen angelegt welche zum ersten bei gefundenen Konten eine Log-Datei anlegt und zum Zweiten dann die Mail sendet. Letzters kann bei manueller Ausführung auch einfach weggelassen werden und muss sonst mit den benötigten Parametern gefüllt werden.

Wichtig: Benutzung der Vorlage natürlich auf eigene Gefahr. Bitte testet das Skript erst indem ihr in der Schleife bei Disable-ADAccount den Parameter -WhatIf übergebt.

Mögliche Fehlerquellen: Prüft die Ausführungsverhinderung der PowerShell (Get-ExecutionPolicy bzw. Set-ExecutionPolicy) wenn ihr das Skript via Aufgabenplanung startet. Weiterhin muss der SMTP Server natürlich das relaying von Nachrichten vom ausführenden Host für einen E-Mail Versand unterstützen und erlauben.

Update 17.04.2017

Christian Grams konnte mir noch einmal den entscheidenden Hinweis mit Get-ADComputer geben. Nachfolgend das ganze Skript. Verzichtet habe ich hier auf den SearchBase Path.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.