logo

Erstellen, Löschen, Umbenennen, Deaktivieren und Verbinden von Computern in Active Directory mit PowerShell

Damit sich ein Benutzer auf einem Computer anmelden und auf Netzwerk- und domänenbasierte Ressourcen zugreifen kann, muss dieser Computer Mitglied der Active Directory-Umgebung sein. In dieser Anleitung zeigen wir Ihnen, wie Sie Routineaufgaben im Zusammenhang mit Computerkonten automatisieren. Hierzu gehören beispielsweise das Erstellen, Umbenennen und Entfernen von Konten.

Sie erfahren, wie Sie mit PowerShell die folgenden Aufgaben zur Verwaltung von Computerkonten ausführen:

  • Verbinden eines Computers mit einer Domäne
    • Verbinden mehrerer Computer mit einer Domäne
  • Entfernen eines Computers aus einer Domäne mit PowerShell
  • Erstellen eines Computerobjekts in Active Directory
    • Erstellen von Computerkonten auf der Grundlage einer CSV-Datei
  • Entfernen eines Computers aus Active Directory
    • Entfernen von Computerkonten mithilfe einer Liste
    • Entfernen veralteter Computerkonten in Active Directory mit PowerShell
  • Umbenennen eines Computers
    • Umbenennen eines Computers und Verbinden mit einer Domäne
  • Deaktivieren eines Active Directory-Computerkontos
    • Deaktivieren von Computerkonten mithilfe einer Liste
  • Zurücksetzen eines Active Directory-Computerkontos

Die PowerShell ISE ist für die Arbeit mit PowerShell-Skripts am besten geeignet. Starten Sie die PowerShell ISE mit Administratorrechten, indem Sie „Windows+R“ drücken und im Fenster „Ausführen“ den Befehl „runas /profile /user:Administrator PowerShell_ISE“ eingeben. Alternativ können Sie mit der rechten Maustaste auf das Symbol für die PowerShell ISE klicken und die Option „Als Administrator ausführen“ wählen. Geben Sie bei der entsprechenden Aufforderung das Administratorkennwort ein.

Für die Arbeit mit Active Directory und seinen Objekten müssen Sie das Active Directory-Modul für Windows PowerShell importieren. Unter Microsoft Windows Server 2008 R2 aktivieren Sie dieses Modul mit folgendem Befehl:

Import-Module ActiveDirectory

Unter Microsoft Windows Server 2012 und höheren Versionen ist dieses Modul bereits standardmäßig aktiviert.

Verbinden eines Computers mit einer Domäne

Die häufigste Aufgabe ist das Verbinden eines Computers mit einem Domänen-Controller. Um einen PC mit einer Active Directory-Domäne zu verbinden, führen Sie das folgende PowerShell-Skript darauf aus:

$dc = "ENTERPRISE" # Specify the domain to join.
$pw = "Password123" | ConvertTo-SecureString -asPlainText –Force # Specify the password for the domain admin.
$usr = "$dc\T.Simpson" # Specify the domain admin account.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -DomainName $dc -Credential $creds -restart -force -verbose # Note that the computer will be restarted automatically.

Der Computer startet daraufhin neu und verbindet sich mit der Domäne. Er wird zum Standardcontainer hinzugefügt.

Um einen Computer remote mit einem Domänen-Controller zu verbinden, müssen Sie das Skript wie folgt erweitern:

$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dc\T.Simpson"
$pc = "R07GF" # Specify the computer that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pc\admin -DomainName $dc -Credential $creds -Verbose -Restart -Force

Mit der Variablen $pc und dem Parameter –LocalCredential wird der Computer in der Domäne authentifiziert. Um diese Methode verwenden zu können, müssen Sie die Firewall auf dem lokalen Computer deaktivieren.

Verbinden mehrerer Computer mit einer Domäne

Sie können mehrere Computer gleichzeitig mit der Domäne verbinden, indem Sie sie entweder in der Befehlszeile als durch Trennzeichen getrennte Liste angeben oder ihre Namen aus einer Textdatei importieren.

So geben Sie die Computer in einer durch Trennzeichen getrennten Liste an:

$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dc\T.Simpson"
$pc = "WKS034, WKS052, WKS057" # Specify the computers that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr$pw)
Add-Computer -ComputerName $pc -LocalCredential $pc\admin -DomainName $dc -Credential $creds -Restart -Force

Und so verwenden Sie eine Textdatei mit der Liste der Computer, die mit der Domäne verbunden werden sollen:

$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dc\T.Simpson"
$pc = Get-Content -Path C:\Computers.txt # Specify the path to the computers list.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pc\admin -DomainName $dc -Credential $creds -Restart -Force

Entfernen eines Computers aus einer Domäne mit PowerShell

Um einen Computer remote aus einer Domäne zu entfernen, verwenden Sie das Cmdlet „Remove-Computer“. In diesem Beispiel entfernen wir einen Computer aus einer Domäne. Hierfür werden keine lokalen Anmeldeinformationen benötigt, sodass wir den Parameter ?LocalCredential überspringen können:

$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dc\T.Simpson"
$pc = "R07GF"
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Remove-Computer -ComputerName $pc -Credential $creds –Verbose –Restart –Force

Remove Computers from an Active Directory Domain using PowerShell
Um mehrere Computer mithilfe einer Liste in einer TXT-Datei zu entfernen, verwenden Sie das Skript oben zur Verbindung von Computern mit einem Domänen-Controller und verwenden anstelle des Cmdlets „Add-Computer“ das Cmdlet „Remove-Computer“. Beachten Sie jedoch, dass Sie Administratoranmeldeinformationen für die Domäne benötigen, um eine Verbindung aufzuheben.

Erstellen eines Computerobjekts in Active Directory

Zur Erstellung eines Computerobjekts verwenden Sie das Cmdlet „New-ADComputer“. Mit den folgenden Cmdlet-Parametern können Sie beispielsweise ein Computerobjekt namens „WKS932“ mit dem Standardwert für den LDAP-Pfad erstellen:

New-ADComputer –Name “WKS932” –SamAccountName “WKS932”

Erstellen von Computerkonten auf der Grundlage einer CSV-Datei

Wenn Sie eine Liste von Computern in Active Directory importieren möchten, speichern Sie die Liste als CSV-Datei mit der Überschrift „Computer“ und der Liste der Computernamen in der Spalte darunter. Führen Sie das folgende PowerShell-Skript auf Ihrem Domänen-Controller aus, um Computer aus der CSV-Datei hinzuzufügen. Stellen Sie dabei sicher, dass die Variablen Path und File richtig konfiguriert sind:

$File="C:\scripts\Computers.csv" # Specify the import CSV position.
$Path="OU=Devices,DC=enterprise,DC=com" # Specify the path to the OU.
Import-Csv -Path $File | ForEach-Object { New-ADComputer -Name $_.Computer -Path $Path -Enabled $True}

Entfernen eines Computers aus Active Directory

Um ein Computerkonto aus Active Directory zu entfernen, verwenden Sie das Cmdlet „Remove-ADObject“. Mit dem Parameter -Identity wird bestimmt, welcher Active Directory-Computer entfernt werden soll. Sie können Computer nach ihrem Namen, ihrer GUID, ihrer Sicherheits-ID (SID) oder ihrem Kontonamen im Sicherheitskonto-Manager angeben.

Remove-ADObject -Identity "WKS932"

Sie werden aufgefordert, den Löschvorgang zu bestätigen.

Entfernen von Computerkonten mithilfe einer Liste

Wenn Sie eine Textdatei mit einer Liste alter Computer haben, können Sie mit PowerShell alle Computer gleichzeitig entfernen. Mit dem folgenden Skript werden die Computernamen aus einer TXT-Datei eingelesen und die dazugehörigen Konten mit einer Befehlskette bzw. Pipeline gelöscht:

Get-Content C:\scripts\computersfordeletion.txt | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive

Entfernen veralteter Computerkonten aus Active Directory mit PowerShell

Veraltete Konten in Active Directory können kompromittiert werden und damit Sicherheitsvorfälle verursachen. Deshalb ist es wichtig, diese Konten im Blick zu behalten. Mit diesem PowerShell-Skript wird Active Directory durchsucht und eine Liste aller Computer angezeigt, auf denen in den letzten 30 Tagen keine Benutzer angemeldet waren. Diesen Standardwert können Sie im Skript ganz einfach ändern. Das Skript entfernt diese Konten außerdem, um Ihre Active Directory-Umgebung zu bereinigen.

$stale = (Get-Date).AddDays(-30) # means 30 days since last logon, can be changed to any number.

Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | FT Name,lastLogonDate

Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | Remove-ADComputer

Remove Stale Computer Accounts from Active Directory with PowerShell

In unserem Beispiel gibt es den Computer „FS1“, auf dem seit über 30 Tagen kein Benutzer mehr angemeldet war. Das System fordert Sie auf, den Vorgang zu bestätigen, bevor der Computer aus der Domäne gelöscht wird:

Remove Stale Computer Accounts from Active Directory with PowerShell Confirmation before deleting

Wenn Sie inaktive Computerkonten nicht löschen, sondern lediglich deaktivieren möchten, verwenden Sie anstelle des Cmdlets „Remove-ADComputer“ das Cmdlet „Set-ADComputer“ mit dem Parameter -Enabled $false und dem dazugehörigen Wert.

Umbenennen eines Computers

Um den Namen eines Computers zu ändern, verwenden Sie das Cmdlet „Rename-Computer“. Beachten Sie bitte, dass der Computer online und mit Active Directory verbunden sein muss.

Rename-Computer –ComputerName "FS1" -NewName "FS2"

Wenn Sie dieses Skript lokal ausführen möchten, sieht es wie folgt aus:

Rename-Computer -NewName "newname" -DomainCredential "Domain\Administrator"

Umbenennen eines Computers und Verbinden mit einer Domäne

Sie können das Skript für die Umbenennung weiter optimieren, indem Sie den Computer mit der Domäne verbinden und gleichzeitig der gewünschten Organisationseinheit zuordnen. Das Skript sollte auf dem Zielsystem ausgeführt werden, nicht auf dem Domänen-Controller.

$NewComputerName = "Server3" # Specify the new computer name.

$DC = "contoso.com" # Specify the domain to join.

$Path = "OU=TestOU,DC=contoso,DC=com" # Specify the path to the OU where to put the computer account in the domain.
Add-Computer -DomainName $DC -OUPath $Path -NewName $NewComputerName –Restart –Force

Das Skript fordert Sie auf, die Anmeldeinformationen für ein Konto einzugeben, das über die Berechtigung zum Verbinden von Computern mit einer Domäne verfügt. Anschließend wird der Computer umbenannt, neu gestartet und mit der Domäne verbunden.

Deaktivieren eines Active Directory-Computerkontos

Mit dem Cmdlet „Disable-ADAccount“ können Sie Benutzer, Computer und Servicekonten in Active Directory deaktivieren. Wenn Sie den Namen eines Computerkontos angeben, müssen Sie ein Dollarzeichen ($) am Ende des Namens anfügen, da sonst nach dem Ausführen des Skripts eine Fehlermeldung angezeigt wird.

Disable-ADAccount -Identity fs1$

Deaktivieren von Computerkonten mithilfe einer Liste

Mit einer Liste in einer Textdatei können Sie auch mehrere Computerkonten gleichzeitig deaktivieren:

$Pclist = Get-Content C:\scripts\Computer.txt # Specify the path to the computers list.
Foreach($pc in $Pclist)
{
Disable-ADAccount -Identity "$pc"
Get-ADComputer -Identity "$pc" | Move-ADObject -TargetPath “OU=Disabled Computers,DC=enterprise,DC=com”
}

Zurücksetzen eines Active Directory-Computerkontos

Computerkonten interagieren wie Benutzerkonten über Kennwörter mit Active Directory. Für Computerkonten werden jedoch standardmäßig alle 30 Tage Kennwortänderungen durchgeführt und das Kennwort ist von der Kenntwortrichtlinie der Domäne ausgenommen. Kennwortänderungen werden auf dem Client (Computer) durchgeführt und nicht in Active Directory.

Die Anmeldeinformationen für einen Computer sind dem Benutzer in der Regel nicht bekannt, da sie vom Computer zufällig generiert werden. Sie können jedoch auch Ihr eigenes Kennwort festlegen, wie in dem folgenden PowerShell-Skript gezeigt:

$pc = read-host –Prompt “Input computer name to reset“ # Specify the computer name.
$pw = read-host –Prompt “Input random characters for temp password“ –AsSecureString # Specify the password.
Get-ADComputer $pc | Set-ADAccountPassword –NewPassword:$pw -Reset:$true

Zusammenfassung

Sie wissen nun, wie Sie Active Directory-Computerkonten mit PowerShell verwalten. Sie können die Skripts in diesem Artikel auch erweitern und an Ihre Zwecke anpassen.

Denken Sie stets daran, alle Änderungen an Computerkonten genauestens zu überwachen, damit Sie unerwünschte Änderungen schnell erkennen und entsprechende Maßnahmen ergreifen können.

Tutorial zur Skripterstellung  mit Windows PowerShell für Einsteiger