Computer automatisch deaktivieren Active Directory

Das Active Directory ist das Herzstück eines jeden großen Unternehmens oder großen Netzwerken. Hier werden alle Computer und Benutzer Objekte verwaltet. Aber viele Administratoren können bestimmt bestätigen, dass sich oft “tote” Objekte im AD befinden. Vor allem alte Computerobjekte werden oft nicht deaktiviert oder gelöscht, wenn sie durch neue Computer ersetzt werden. So sammeln sich viele alte Objekte an. Wir haben eine Möglichkeit, dass wir alte Computer automatisch deaktivieren lassen und uns danach per Mail benachrichtigen lassen.

lukasbieri / Pixabay

 

Computer automatisch deaktivieren per PowerShell

Um nun alle alten Computer deaktivieren zu lassen, die länger als “x” Tage nicht mehr genutzt werden, verwenden wir ein PowerShell Script. Ebenfalls lassen wir uns natürlich per Mail benachrichtigen, um den Überblick nicht zu verlieren. Somit braucht man sich um nicht verwendete Computerobjekte nicht mehr kümmern.

Zuerst benötigen wir folgendes PowerShell Script:

Import-Module ActiveDirectory

#Settings
$timerange = (Get-Date).AddDays(-120)
$logpath = "C:\temp\log"
$logfile = $logpath + (get-date -Format yyyy-MM-dd) + "-auto-disabled-computers.txt"


#Get all Computers
$computers = Get-ADComputer -Properties LastLogonDate -Filter {LastLogonDate -lt $timerange -and Enabled -eq $true}


#Get all Computers in OU
#$computers = Get-ADComputer -SearchBase "OU=Computer,OU=ORG,DC=yourdomain,DC=de" -Properties LastLogonDate -Filter {LastLogonDate -lt $timerange -and Enabled -eq $true}


#Create logfile
if ($computers.count -gt 0){
New-Item -ItemType File -Path $logfile -Force
}


#Disable Computer Object
foreach ($item in $computers){
Disable-ADAccount -Identity $item.SamAccountName 
#Write logfile
"Der Computer " + $item.SamAccountName + " wurde automatisch deaktiviert." | Out-File $logfile -Append
}


#Send Mail Message
if ($computers.count -gt 0){
Send-MailMessage -SmtpServer "smtpserver.yourdomain.de" -Subject ([string]$computers.count + " Computer wurden im AD deaktiviert") -Attachments $logfile -To [email protected] -From [email protected] -body "Bitte folgende Computerkonten im Anhang pruefen." -Encoding UTF8
}

Im Script müssen folgende Anpassungen gemacht werden:

  • Zeile 04: Hier werden die Tage eingestellt (Beispiel “Computerobjekte älter 120 Tage“)
  • Zeile 05: Der Pfad, in welchem die Logdatei abgelegt wird
  • Zeile 06: Name und Zusammensetzung der Logdatei
  • Zeile 33: Mail Settings (Server, Empfänger, Sender)

Die Zeile 14 ist auskommentiert. Wenn diese aktiviert wird, kann statt allen Computerobjekten im AD in einer bestimmten OU gesucht werden. Dazu muss dann natürlich die Zeile 10 auskommentiert werden.

Nach dem Ausführen des PowerShell Scripts sollten alle Computer, die älter sind als 120 Tage im Active Directory deaktiviert werden. Im Anschluss erhaltet ihr eine Mail Benachrichtigung.

Computer automatisch deaktivieren AD PowerShell

TIPP: Führt das Script in regelmäßigen Abständen per Aufgabenplanung aus!

Ich hoffe wir konnten euch zum Thema Computer automatisch deaktivieren im Active Directory weiterhelfen. 🙂

 

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments