ADAC nutzen¶
Das AD Administrative Center - oder nur kurz ADAC - ermöglicht die grafische Nutzung der PowerShell. Im Grunde ist das ADAC einfach nur eine grafische Oberfläche (GUI) für die PowerShell.
In der unteren Hälfte kann man den PowerShell Verlauf für die umgesetzten Aktiven in der ADAC-GUI erkennen, die sich einfach dort herauskopieren und als Basis für eigene Code nutzen kann.
Übungsidee: man erstelle eine neue OU. In dieser OU werden eine neue Globale Gruppe und ein neuer User erstellt. Zuletzt soll der neue User Mitglied der neuen Gruppe werden.
Der folgende Code aus dem ADAC wurde aus Gründen der Lesbarkeit mit PowerShell Zeilenumbrüchen versehen.
New-ADOrganizationalUnit -Description:"Eine erste OU zum Testen" `
-Name:"TestingOU" -Path:"DC=firma,DC=local" `
-ProtectedFromAccidentalDeletion:$true -Server:"DC01.firma.local"
Set-ADObject -Identity:"OU=TestingOU,DC=firma,DC=local" `
-ProtectedFromAccidentalDeletion:$true -Server:"DC01.firma.local"
New-ADGroup -Description:"Eine erste globale Testgruppe" `
-GroupCategory:"Security" -GroupScope:"Global" `
-Name:"TestGruppe" -Path:"OU=TestingOU,DC=firma,DC=local" `
-SamAccountName:"TestGruppe" -Server:"DC01.firma.local"
New-ADUser -City:"Braunschweig" `
-Description:"Ein Standarduser für die firma.local Domäne" `
-DisplayName:"Joe Standard" -GivenName:"Joe" -Name:"Joe Standard" `
-Path:"OU=TestingOU,DC=firma,DC=local" -SamAccountName:"joestandard" `
-Server:"DC01.firma.local" -Surname:"Standard" -Type:"user"
# Set-ADAccountPassword -Identity:"CN=Joe Standard,OU=TestingOU,DC=firma,DC=local"
# -NewPassword:"System.Security.SecureString"
# -Reset:$true -Server:"DC01.firma.local"
Enable-ADAccount -Identity:"CN=Joe Standard,OU=TestingOU,DC=firma,DC=local" `
-Server:"DC01.firma.local"
Set-ADAccountControl -AccountNotDelegated:$false `
-AllowReversiblePasswordEncryption:$false `
-CannotChangePassword:$false -DoesNotRequirePreAuth:$false `
-Identity:"CN=Joe Standard,OU=TestingOU,DC=firma,DC=local" `
-PasswordNeverExpires:$false -Server:"DC01.firma.local" -UseDESKeyOnly:$false
Set-ADUser -ChangePasswordAtLogon:$false `
-Identity:"CN=Joe Standard,OU=TestingOU,DC=firma,DC=local" `
-Server:"DC01.firma.local" -SmartcardLogonRequired:$false
Set-ADGroup -Add:@{'Member'="CN=Joe Standard,OU=TestingOU,DC=firma,DC=local"}
-Identity:"CN=TestGruppe,OU=TestingOU,DC=firma,DC=local" `
-Server:"DC01.firma.local"
Der Code enthält aufgrund der Automatisierungen innerhalb des ADAC diverse Redundanzen bei den Befehlen. So kann das ADAC beliebige Einträge in seinen Formularen für die AD-Objekte sauber abbilden.
Wir können das Ganze natürlich analysieren und auf eine gewünschte praktische Version shrinken.
Wir bilden also den ganzen Vorgang über Skripting mit eigenen Objekten für OU, User, Group und Membership ab.
# Neue OU erstellen: DienstagOU
# ------------------
New-ADOrganizationalUnit -Description:"Eine erste OU zum Testen"
-Name:"DienstagOU" -Path:"DC=firma,DC=local"
-ProtectedFromAccidentalDeletion:$true -Server:"DC01.firma.local"
# Neue Globale Gruppe erstellen: DienstagGruppe
# ------------------------------
New-ADGroup -Description:"Eine zweite globale Testgruppe" `
-GroupCategory:"Security" -GroupScope:"Global" `
-Name:"DienstagGruppe" -Path:"OU=DienstagOU,DC=firma,DC=local" `
-SamAccountName:"DienstagGruppe" -Server:"DC01.firma.local"
# Neuen Benutzer erstellen: joedienstag
# ------------------------- (siehe folgende Recherchen...)
# s. z.B. https://blog.netwrix.de/2019/11/05/erstellen-neuer-active-directory-benutzer-mit-powershell/
# MS Learn: https://learn.microsoft.com/en-us/powershell/module/activedirectory/new-aduser?view=windowsserver2022-ps
New-ADUser -Name "Joe Dienstag" -GivenName "Joe" `
-Surname "Dienstag" -SamAccountName "joedienstag" `
-UserPrincipalName "joedienstag@firma.local" `
-Path "OU=DienstagOU,DC=firma,DC=local" `
-AccountPassword(Read-Host -AsSecureString "Bitte Passwort eingeben") `
-Enabled $true
# ------------------------- (Frage: City / l einstellen -> Braunschwaach ?)
# Mitgliedschaft Benutzer (neu) in Gruppe (neu)
# ---------------------------------------------
Set-ADGroup -Add:@{'Member'="CN=Joe Dienstag,OU=DienstagOU,DC=firma,DC=local"} `
-Identity:"CN=DienstagGruppe,OU=DienstagOU,DC=firma,DC=local" `
-Server:"DC01.firma.local"
Und mit entsprechender Vorgehensweise können wir auch noch die Löschung (rekursiv) unserer erstellten Übungs-OU veranlassen.
# ACHTUNG: OU rekursiv löschen! ACHTUNG ACHTUNG ACHTUNG ACHTUNG ACHTUNG ACHTUNG ACHTUNG ACHTUNG ACHTUNG
# -----------------------------------------------------------------------------------------------------
Set-ADObject -Identity:"OU=DienstagOU,DC=firma,DC=local"
-ProtectedFromAccidentalDeletion:$false -Server:"DC01.firma.local"
Remove-ADObject -Confirm:$false
-Identity:"OU=DienstagOU,DC=firma,DC=local"
-Recursive:$true -Server:"DC01.firma.local"
Alle diese Skripte lassen sich natürlich effizient mit Parametern und mittels PowerShell-Funktionen umsetzen.
Gefahr
Insbesondere bei Lösch-Techniken sollte man dann natürlich große Sorgfalt an den Tag legen und entsprechende Nachfragen und Kontrollen einbauen!