Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
Verwalten von OUs und Verschieben ihrer Objekte mit PowerShell

Verwalten von OUs und Verschieben ihrer Objekte mit PowerShell

Jun 26, 2018

Eine Organisationseinheit (OU) ist ein Container in Active Directory, in dem Benutzer, Gruppen und Computer sowie weitere OUs gespeichert werden können. Jede AD-Domäne kann ihre eigene Hierarchie von Organisationseinheiten haben.

In diesem Artikel erfahren Sie mehr über OU-Management und wie Sie PowerShell-Skripte verwenden, um Organisationseinheiten in AD zu erstellen, zu verschieben und zu löschen; eine Group Policy mit einer OU zu verknüpfen; und Computer- und Benutzerkonten in eine andere OU zu verschieben.

PowerShell ISE ist das beste Werkzeug für die Arbeit mit PowerShell-Skripten. Starten Sie das PowerShell ISE-Tool mit Administratorrechten, indem Sie „Windows+R“ drücken und „runas /profile /user:Administrator PowerShell_ISE“ im Ausführen-Fenster eingeben. Geben Sie das Administratorpasswort ein, wenn Sie dazu aufgefordert werden. Alternativ können Sie mit der rechten Maustaste auf das PowerShell ISE-Symbol klicken und die Option „Als Administrator ausführen“ wählen.

Um mit AD und seinen Objekten zu arbeiten, müssen Sie das Active Directory-Modul für Windows PowerShell importieren. In Microsoft Windows Server 2008 R2 müssen Sie dieses Modul aktivieren, indem Sie den folgenden Befehl ausführen:

      Import-Module ActiveDirectory
      

In Microsoft Windows Server 2012 und später ist dieses Modul standardmäßig aktiviert.

Erstellen Sie OUs in einer Active Directory-Domäne mit PowerShell

Sie können eine neue Organisationseinheit in Active Directory erstellen, indem Sie das Cmdlet New-ADOrganizationalUnit verwenden und den Namen eines neuen OU-Objekts angeben. Standardmäßig wird PowerShell die OU im Domain-Root erstellen. Der folgende Befehl erstellt eine OU mit dem Namen „Regions“ auf dem DC:

      New-ADOrganizationalUnit “Regions”
      

Wenn Sie einen anderen OU LDAP-Pfad benötigen, geben Sie dessen Distinguished Name mit dem Parameter –Path des Cmdlets an:

      New-ADOrganizationalUnit “Regions” –Path “OU=Managers,DC=Enterprise,DC=com”
      
Image

Verschieben Sie eine OU zu einer anderen LDAP-Adresse

Wenn Sie eine OU an einen anderen Ort verschieben müssen, verwenden Sie das Cmdlet Move-ADObject. Beachten Sie, dass die Ziel-OU nicht gegen versehentliches Löschen geschützt sein darf. Wenn dies der Fall ist, verwenden Sie diesen Befehl, um diesen Schutz zu entfernen:

      Set-ADOrganizationalUnit -Identity "OU=Regions,OU=Managers,DC=Enterprise,DC=Com" -ProtectedFromAccidentalDeletion $False
      

Jetzt können Sie die OU an einen anderen Ort verschieben:

      Move-ADObject -Identity "OU=Regions,OU=Managers,DC=Enterprise,DC=Com" -TargetPath "OU=IT,DC=Enterprise,DC=Com"
      

Eine OU umbenennen

Um eine Organisationseinheit umzubenennen, verwenden Sie das Cmdlet Rename-ADObject. Der Parameter -Identity gibt das umzubenennende Active Directory-Objekt an und erfordert entweder dessen Distinguished Name (DN) oder GUID.

Dieser Befehl benennt die „Regions“-OU in „Districts“ um:

      Rename-ADObject -Identity "OU=Regions,OU=IT,DC=enterprise,DC=COM" -NewName Districts
      

Alternativ können Sie das Cmdlet Get-ADOrganizationalUnit mit dem Parameter the -Filter verwenden; es erfordert nicht den gesamten LDAP-Pfad zur OU. Allerdings wird dieses Cmdlet die gesamte AD durchsuchen und die Aktion wird auf alle OUs angewendet, die den Suchbegriff in ihren Namen enthalten:

      Get-ADOrganizationalUnit -Filter "Name -eq 'Regions'" | Rename-ADObject -NewName Countries
      

Wenden Sie eine Gruppenrichtlinie auf eine OU an

Um einer OU eine Gruppenrichtlinie zuzuweisen, verwenden Sie das Cmdlet New-GPLink , das im Grunde eine Verknüpfung zwischen dem angegebenen Gruppenrichtlinienobjekt (GPO) und der OU herstellt. Sie können eine der folgenden Eigenschaften für die Verknüpfung angeben:

  • Aktiviert — Wenn der Link aktiviert ist, werden die Einstellungen der GPO angewendet, wenn die Gruppenrichtlinie für die Website, Domäne oder OU verarbeitet wird.
  • Durchgesetzt — Wenn die Verknüpfung durchgesetzt wird, kann sie in einem untergeordneten Container nicht blockiert werden.
  • Reihenfolge — Die Reihenfolge gibt die Priorität der GPO-Einstellungen an.

Der folgende Befehl verknüpft die „Block Software“ GPO mit der „Districts“ OU, wobei die Verknüpfung sowohl aktiviert als auch erzwungen wird:

      New-GPLink -Name "Block Software" -Target "OU=Districts,OU=IT,dc=enterprise,dc=com" -LinkEnabled Yes -Enforced Yes
      
Image

Verschieben Sie Computer und Benutzer in eine neue OU

Sobald Sie eine OU erstellt und optional mit einer GPO verknüpft haben, ist es an der Zeit, sie mit Benutzern und Computern zu füllen. Das PowerShell-Move-ADObject-Cmdlet verschiebt ein Objekt oder eine Gruppe von Objekten (wie einen Benutzer, einen Computer, eine Gruppe oder eine andere OU) in eine andere OU. Der Parameter -Identity gibt an, welches Active Directory-Objekt oder welchen Container man verschieben möchte. Beachten Sie, dass Sie den vollständigen LDAP-Pfad oder die SID des Objekts eingeben müssen; Sie können nicht seinen SamAccountName verwenden. Das folgende Beispiel demonstriert, wie man einen Benutzer (John Brown) in die OU „Districts“ verschiebt:

      Move-ADObject -Identity "CN=John Brown,CN=Users,DC=enterprise,DC=com" -TargetPath "OU=Districts,OU=IT,DC=Enterprise,DC=Com"
      

Verwenden Sie dieselbe Syntax, um Computerobjekte zu verschieben. Der folgende Befehl wird den Computer „R07GF“ in den „Computers“-Container verschieben:

      Move-ADObject -Identity "CN=R07GF,OU=CEO,DC=enterprise,DC=com" -TargetPath "CN=Computers,DC=Enterprise,DC=Com
      

Verschieben Sie AD-Computer und Benutzer mit einer CSV- oder TXT-Datei in eine andere OU

Wenn Sie eine vordefinierte Liste von Objekten haben, die verschoben werden sollen, können Sie diese als CSV-Datei speichern und dann diese Datei in Active Directory importieren. Die CSV-Liste sollte im folgenden Format sein:

Verwenden Sie dieses PowerShell-Skript, um AD-Benutzerkonten, die in einer CSV-Datei aufgelistet sind, zu verschieben:

      # Specify target OU. This is where users will be moved.
$TargetOU =  "OU=Districts,OU=IT,DC=enterprise,DC=com"
# Specify CSV path. Import CSV file and assign it to a variable. 
$Imported_csv = Import-Csv -Path "C:tempMoveList.csv" 

$Imported_csv | ForEach-Object {
     # Retrieve DN of user.
     $UserDN  = (Get-ADUser -Identity $_.Name).distinguishedName
     # Move user to target OU.
     Move-ADObject  -Identity $UserDN  -TargetPath $TargetOU
   
 }
      

Um AD-Computerkonten, die in einer Textdatei aufgelistet sind, zu verschieben, verwenden Sie das folgende PowerShell-Skript:

      # Specify path to the text file with the computer account names.
$computers = Get-Content C:TempComputers.txt

# Specify the path to the OU where computers will be moved.
$TargetOU   =  "OU=Districts,OU=IT,DC=enterprise,DC=com" 
ForEach( $computer in $computers){
    Get-ADComputer $computer |
    Move-ADObject -TargetPath $TargetOU

}
      

Entfernen Sie eine OU aus AD

Das Cmdlet Remove-ADOrganizationalUnit entfernt eine OU. Die OU darf nicht gegen versehentliches Löschen geschützt sein. Sie können die Option zum Schutz vor versehentlichem Löschen für jede OU entfernen, die „Continents“ in ihrem Namen enthält, indem Sie die Cmdlets Get-ADOrganizationalUnit und Set-ADOrganizationalUnit wie folgt verwenden:

      Get-ADOrganizationalUnit -filter "Name -eq 'Continents'" | Set-ADOrganizationalUnit  -ProtectedFromAccidentalDeletion $False
      

Verwenden Sie den folgenden Befehl, um jede OU, die „Continents“ in ihrem Namen enthält, aus AD zu entfernen:

      Get-ADOrganizationalUnit -filter "Name -eq 'Continents'" | Remove-ADOrganizationalUnit –Recursive
      

Sie werden aufgefordert, das Löschen zu bestätigen:

Image

Beachten Sie, dass der -Recursive-Parameter sowohl die OU als auch alle ihre untergeordneten Objekte entfernt. Die untergeordneten Objekte werden gelöscht, auch wenn für sie ein Löschschutz aktiviert ist.

Fazit

Jetzt, da Sie gelernt haben, wie man OUs in Active Directory mit PowerShell-Skripten verwaltet, können Sie eine Vielzahl einfacher Operationen im Zusammenhang mit der OU-Verwaltung automatisieren. Bevor Sie diese Befehle ausprobieren, stellen Sie sicher, dass Sie das Feature Active Directory Recycle Bin aktivieren, damit Sie versehentliche Löschungen problemlos rückgängig machen können. Es ist auch klug, alle Änderungen an Ihren Organisationseinheiten sorgfältig zu verfolgen.

Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Jeff Melnick

Direktor für Systemtechnik

Jeff ist ehemaliger Director of Global Solutions Engineering bei Netwrix. Er ist ein langjähriger Netwrix-Blogger, Redner und Präsentator. Im Netwrix-Blog teilt Jeff Lifehacks, Tipps und Tricks, die Ihre Systemadministrationserfahrung erheblich verbessern können.