Active Directory Installieren und Konfigurieren

Posted on: 10. Mai 2018

Das neue Projekt beginnt mit etwas Zauberei rund um Active Directory. Wir schreiben zusammen das Super-Script welches aus einem normalen Server einen Domaincontroller macht und gleich die Standard-Struktur einrichtet.

Ebenfalls wird in dem Script festgelegt, in welche OU neue Computer (oder Server) hinkommen sollen um sie danach zu verteilen. Wenn du das Script an deine Bedürfnisse anpasst, dann brauchst du noch gerade 5 Minuten um eine komplette Active Directory aufzubauen, mehr nicht. Die restlichen rund 30 Minuten sind reine Wartezeit, in der du ein Kaffe oder dein Mittagessen geniessen kannst 🙂

Hier der Code aus dem Youtube-Video. Die Vorgehensweise und Bemerkungen findest du direkt als Kommentare (#Grün) im Code. So wird er dir ebenfalls in der PowerSHELL ISE angezeigt werden.

——————————————–

## Parameter                                    
$DomainModus = "WinThreshold" # WinThreshold = 2016 / Win2012R2 / Win2012                                    
$DomainFQDN = "gps.germanpowershell.com" # Unbedingt einen effektiv möglichen Domainnnamen eingeben                                    
$NetbiosName = "gps"                        
$DomainPasswort = "Start1234"                        
$StandardOU = "GPS"                        
$Abteilungen = "IT","Personal","Geschaeftsleitung","Vertrieb","Verwaltung"                        
$Standort = "Bern"                        
                        
# Passwort als sicherer SecureString konvertieren                        
$DomainSecureString = ConvertTo-SecureString -String $DomainPasswort -AsPlainText -Force                        
                                    
# Prüfen ob die Active Directory Rolle installiert ist                                    
if ((Get-WindowsFeature AD-Domain-Services).InstallState -eq "Installed" )                                    
                                    
# Falls dies zutrifft, ausgeben dass bereits installiert                                    
{Write-Host "AD Rolle bereits installiert" -ForegroundColor Cyan}                                    
                                    
# Prüfen ob eine Installation erfolgreich durchgeführt werden kann                                    
else{if ((Install-WindowsFeature AD-Domain-Services -IncludeAllSubFeature -IncludeManagementTools -Restart -WhatIf).success -eq $true) {                                    
                                    
# Info über Erfolg und Installation des AD Services                                    
Write-Host "Active Directory kann erfolgreich installiert werden und wird nun installiert" -ForegroundColor Green                                    
Install-WindowsFeature AD-Domain-Services -IncludeAllSubFeature -IncludeManagementTools -Restart                                   
}                                     
                                    
# Wegen Fehler informieren und script abbrechen.                                    
else {return Write-Host "Die Voraussetzungen für die Active Directory installation sind nicht erfüllt, das Script wird abgebrochen" }}                                    
                                    
# Weitere Informationen zu diesen Parametern unter: https://docs.microsoft.com/de-de/powershell/module/addsdeployment/install-addsforest?view=win10-ps                                    
# Im Wesentlichen kannst du die Parameter so belassen                                    
if (( Test-ADDSForestInstallation -CreateDnsDelegation:$false -DatabasePath “C:\Windows\NTDS” -DomainMode $DomainModus -DomainName $DomainFQDN -DomainNetbiosName $NetbiosName -ForestMode $DomainModus -InstallDns:$true -LogPath “C:\Windows\NTDS” -NoRebootOnCompletion:$false -SysvolPath “C:\Windows\SYSVOL” -Force:$true -SafeModeAdministratorPassword $DomainSecureString).Status -eq "Success"){                        
Write-Host "Voraussetzungen erfüllt, Domain und Forest werden nun installiert" -ForegroundColor Green            
install-ADDSForest -CreateDnsDelegation:$false -DatabasePath “C:\Windows\NTDS” -DomainMode $DomainModus -DomainName $DomainFQDN -DomainNetbiosName $NetbiosName -ForestMode $DomainModus -InstallDns:$true -LogPath “C:\Windows\NTDS” -NoRebootOnCompletion:$false -SysvolPath “C:\Windows\SYSVOL” -Force:$true -SafeModeAdministratorPassword $DomainSecureString                        
} else {Write-Host "Voraussetzungen zur Installallation nicht erfüllt" -ForegroundColor Red}                        
                        
# Erstellen der ersten Organisationseinheit und feststellen des DistinguishedName                        
New-ADOrganizationalUnit -Name $StandardOU                        
$StandardDN = (Get-ADOrganizationalUnit -Filter 'Name -eq $StandardOU').DistinguishedName                        
                        
# Standard OU erstellen                        
New-ADOrganizationalUnit -Name "Benutzer" -Path $StandardDN                        
New-ADOrganizationalUnit -Name "Gruppen" -Path $StandardDN                        
New-ADOrganizationalUnit -Name "Infrastruktur" -Path $StandardDN                        
                        
# Wichtigste DN's in Variabeln speichern                        
$Benutzer = (Get-ADOrganizationalUnit -Filter 'Name -eq "Benutzer"').DistinguishedName                        
$Gruppen = (Get-ADOrganizationalUnit -Filter 'Name -eq "Gruppen"').DistinguishedName                        
$Infrastruktur = (Get-ADOrganizationalUnit -Filter 'Name -eq "Infrastruktur"').DistinguishedName                        
                        
# OU für Server und Computer erstellen                        
New-ADOrganizationalUnit -Name "Workstations" -Path $Infrastruktur                        
New-ADOrganizationalUnit -Name "Servers" -Path $Infrastruktur                        
New-ADOrganizationalUnit -Name "NichtZugeordnet" -Path $Infrastruktur                        
                        
# DN für Server in Variabel schreiben                        
$Servers = (Get-ADOrganizationalUnit -Filter 'Name -eq "Servers"').DistinguishedName                        
                        
# DN für neue, nicht zugeordnete Computer in der Domäne                        
$NeuePC = (Get-ADOrganizationalUnit -Filter 'Name -eq "NichtZugeordnet"').DistinguishedName                        
                        
# Die AD so umstellen, dass neu hinzugefügte Computer in einer bestimmten OU landen                        
start C:\Windows\System32\redircmp -ArgumentList $NeuePC                        
                        
# Erstellen der OU und Gruppen für die Abteilungen                        
foreach ($Abteilung in $Abteilungen){                        
New-ADOrganizationalUnit -Name $Abteilung -Path $Benutzer                        
New-ADOrganizationalUnit -Name $Abteilung -Path $Gruppen                        
New-ADGroup -Name ($Abteilung + "_R") -Path ("OU=" + $Abteilung + "," + $Gruppen ) -GroupScope DomainLocal                        
New-ADGroup -Name ($Abteilung + "_W") -Path ("OU=" + $Abteilung + "," + $Gruppen ) -GroupScope DomainLocal                        
New-ADGroup -Name ($Abteilung + "_Alle") -Path ("OU=" + $Abteilung + "," + $Gruppen ) -GroupScope DomainLocal                        
Get-ADGroup ($Abteilung + "_R") |  Add-ADGroupMember -Members ($Abteilung + "_Alle")                        
}                        
                        
# Ein paar Standard-OU's für Serverkategorien                        
New-ADOrganizationalUnit -Name "Hyper-V" -Path $Servers                        
New-ADOrganizationalUnit -Name "Management" -Path $Servers                        
New-ADOrganizationalUnit -Name "Applikation" -Path $Servers                        
New-ADOrganizationalUnit -Name "DHCP" -Path $Servers                        
New-ADOrganizationalUnit -Name "Druckserver" -Path $Servers                        
New-ADOrganizationalUnit -Name "Dateiserver" -Path $Servers                        
                        
# Erste 'Site' der AD umbenennen in Standort                        
Get-ADObject -SearchBase (Get-ADRootDSE).ConfigurationNamingContext -filter "objectclass -eq 'site'" | Rename-ADObject -NewName $Standort
--------------------------------------------

Solltest du irgendwelche Fragen haben, dann kannst du diese gerne entweder hier im Blog oder direkt unter dem YouTube Video stellen. Ich gebe alles, deine Fragen zeitnahe zu beantworten oder ein entsprechendes Video darüber zu machen.

Gerade die Grundlagen-Videos werde ich nicht mit viel Text ausschmücken. Bei mir ist jeweils jede Code-Zeile direkt im Code Kommentiert (#Grün). Du kannst den Code direkt mit in dein Script kopieren und hast so eine gute Orientierungshilfe, sobald du die Scripts auf deine Bedürfnisse anpasst.
Ich erstelle und veröffentliche sämtliche Videos kostenlos und blende auch keine Werbung ein, dies will ich auch so beibehalten. Da das vermittelte Wissen aber in teuren Kursen erlangt werden kann, ist eine kleine Spende hin und wieder sicher keine schlechte Gegenleistung.