Active Directory Installieren und Konfigurieren
Posted on: 10. Mai 2018Das 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.