Windows-Domäne mit PowerShell
| Kurs | Lab | Rechner | Domäne |
|---|---|---|---|
| Linux - Samba | Linux - Samba Lab | win-dc · 10.2XX.1.11 | ad.it2XX.int |
Einfach erklärt
- Ein Windows Server wird zum Domänencontroller, indem man ihm die Rolle Active Directory-Domänendienste (AD DS) gibt und ihn zum ersten DC einer neuen Gesamtstruktur (Forest) macht.
- Dabei richtet Windows gleich den DNS-Server für die Domäne mit ein, genau wie Samba.
- Alles, was man in der grafischen Oberfläche klickt, geht auch mit PowerShell. Das ist schneller, man kann es wiederholen und genau nachlesen, was passiert ist.
- Für Linux-Leute: PowerShell-Befehle heißen immer Verb-Nomen, z.B. Get-ADUser, New-ADUser. Hilfe gibt es mit Get-Help Befehl -Examples.
Das Wichtigste
- Erst Name und feste Adresse, dann die Rollen, dann den DC einrichten. Der Name lässt sich danach kaum noch ändern.
- Ein Windows-DC nimmt nach dem Einrichten sich selbst als DNS-Server. Fremde Namen fragt er beim Forwarder nach.
- Der erste DC hat alle FSMO-Rollen, auch den PDC-Emulator. Der ist die Zeitquelle der Domäne.
- Windows Server 2022 legt die Domäne mit dem Functional Level 2016 an. Das ist später für Samba wichtig, siehe Windows-DC durch Samba ablösen.
Deine Werte
| Wert | Beispiel lab01 |
|---|---|
| Rechner | win-dc |
| Adresse | 10.201.1.11/24, Gateway 10.201.1.1 |
| Domäne | ad.it201.int |
| NetBIOS | AD |
| DHCP-Bereich im LAN | 172.26.201.150 bis 172.26.201.199 |
Vorbereitung
- Alle Befehle in einer PowerShell als Administrator.
Rename-Computer -NewName win-dc -Restart
- Nach dem Neustart den Namen der Netzwerkkarte herausfinden und die Adresse setzen:
Get-NetAdapter New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 10.201.1.11 -PrefixLength 24 -DefaultGateway 10.201.1.1 Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 10.201.1.1 Set-TimeZone -Id "W. Europe Standard Time"
- Prüfen: ipconfig /all, Test-NetConnection debian.org
Rollen installieren
Install-WindowsFeature AD-Domain-Services, DNS, DHCP -IncludeManagementTools
- -IncludeManagementTools installiert die Verwaltungsprogramme dazu: Active Directory-Benutzer und -Computer, DNS-Manager, DHCP-Konsole.
Domäne anlegen
Install-ADDSForest ` -DomainName "ad.it201.int" ` -DomainNetbiosName "AD" ` -InstallDns ` -SafeModeAdministratorPassword (Read-Host -AsSecureString "DSRM-Passwort")
- Das DSRM-Passwort braucht man nur für die Wiederherstellung im Verzeichnisdienst-Wiederherstellungsmodus. Gut aufheben.
- Der Server startet danach von selbst neu. Anmelden jetzt als AD\Administrator, mit dem bisherigen lokalen Administratorpasswort.
- Das ` am Zeilenende ist in PowerShell das, was in der Bash der \ ist.
DNS
- Forwarder: Was nicht zur Domäne gehört, fragt der DC bei der Firewall nach.
Set-DnsServerForwarder -IPAddress 10.201.1.1
- Rückwärtszonen für beide Netze:
Add-DnsServerPrimaryZone -NetworkId "10.201.1.0/24" -ReplicationScope Forest Add-DnsServerPrimaryZone -NetworkId "172.26.201.0/24" -ReplicationScope Forest ipconfig /registerdns
- Prüfen:
Resolve-DnsName -Type SRV _ldap._tcp.ad.it201.int Resolve-DnsName win-dc.ad.it201.int Resolve-DnsName 10.201.1.11 Resolve-DnsName debian.org
Zeit
- Der PDC-Emulator holt die Zeit von außen, alle anderen Rechner der Domäne von ihm.
w32tm /config /manualpeerlist:"10.201.1.1" /syncfromflags:manual /reliable:yes /update w32tm /resync w32tm /query /status
DHCP
- Die Firewall leitet DHCP-Anfragen aus dem LAN an win-dc weiter (DHCP-Relay). win-dc braucht dafür einen Bereich für das LAN.
Add-DhcpServerSecurityGroup Restart-Service DHCPServer Add-DhcpServerInDC -DnsName win-dc.ad.it201.int -IPAddress 10.201.1.11 Set-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12 -Name ConfigurationState -Value 2 Add-DhcpServerv4Scope -Name "LAN" -StartRange 172.26.201.150 -EndRange 172.26.201.199 -SubnetMask 255.255.255.0 Set-DhcpServerv4OptionValue -ScopeId 172.26.201.0 -Router 172.26.201.1 -DnsServer 10.201.1.11 -DnsDomain ad.it201.int
| Befehl | Wirkung |
|---|---|
| Add-DhcpServerInDC | DHCP-Server in der Domäne autorisieren. Nicht autorisierte Windows-DHCP-Server verteilen keine Adressen |
| Set-ItemProperty … ConfigurationState | blendet die Warnung „Konfiguration nicht abgeschlossen“ im Server-Manager aus |
| -DnsServer 10.201.1.11 | die Clients bekommen den DC als DNS-Server. Ohne das finden sie die Domäne nicht |
- Feste Adresse für einen Client, z.B. win11:
Add-DhcpServerv4Reservation -ScopeId 172.26.201.0 -IPAddress 172.26.201.100 -ClientId "08-00-27-12-34-56" -Name win11 Get-DhcpServerv4Lease -ScopeId 172.26.201.0
Struktur, Benutzer und Gruppen
$base = "DC=ad,DC=it201,DC=int" New-ADOrganizationalUnit -Name "Firma" -Path $base New-ADOrganizationalUnit -Name "Benutzer" -Path "OU=Firma,$base" New-ADOrganizationalUnit -Name "Gruppen" -Path "OU=Firma,$base" New-ADOrganizationalUnit -Name "Rechner" -Path "OU=Firma,$base" New-ADGroup -Name "verwaltung" -GroupScope Global -Path "OU=Gruppen,OU=Firma,$base" New-ADUser -Name "Max Muster" -GivenName Max -Surname Muster ` -SamAccountName max -UserPrincipalName max@ad.it201.int ` -Path "OU=Benutzer,OU=Firma,$base" ` -AccountPassword (Read-Host -AsSecureString "Passwort") -Enabled $true Add-ADGroupMember -Identity verwaltung -Members max Get-ADUser -Filter * | Format-Table Name, SamAccountName, Enabled Get-ADGroupMember verwaltung
- OU (Organisationseinheit) ist ein Ordner im Verzeichnis. An OUs hängt man später Gruppenrichtlinien.
- Für Linux-Leute: Ein Distinguished Name wie OU=Benutzer,OU=Firma,DC=ad,DC=it201,DC=int ist derselbe Pfad wie in jedem LDAP-Verzeichnis, nur von unten nach oben gelesen.
Prüfen
| Was | Befehl |
|---|---|
| Domäne | Format-List DNSRoot, NetBIOSName, DomainMode |
| Gesamtstruktur | Format-List ForestMode, SchemaMaster |
| DC gesund | dcdiag /q |
| FSMO-Rollen | netdom query fsmo |
| SRV-Eintrag | Resolve-DnsName -Type SRV _ldap._tcp.ad.it201.int |
| Zeit | w32tm /query /status |
| DHCP | Get-DhcpServerv4Scope |
- dcdiag /q zeigt nur Fehler. Keine Ausgabe heißt: alles in Ordnung.
Von Linux aus prüfen
- Auf fs oder lx, mit win-dc als DNS-Server:
host -t SRV _ldap._tcp.ad.it201.int 10.201.1.11 host -t SRV _kerberos._tcp.ad.it201.int 10.201.1.11 ldapsearch -x -H ldap://10.201.1.11 -s base -b "" defaultNamingContext
- Die letzte Abfrage geht ohne Anmeldung. Sie zeigt den RootDSE, die Grunddaten der Domäne.
Stolperfallen
- Rechnername nach dem Einrichten ändern: Bei einem DC aufwendig. Den Namen vorher setzen.
- DNS-Server der Karte zeigt nach außen: Der DC findet sich selbst nicht. Nach dem Einrichten muss 127.0.0.1 oder die eigene Adresse eingetragen sein.
- DHCP nicht autorisiert: Der Dienst läuft, verteilt aber keine Adressen.
- DHCP-Relay fehlt: Clients im LAN bekommen keine Adresse, weil DHCP-Anfragen das Netz nicht verlassen.
- Zeit: Läuft der PDC-Emulator falsch, läuft die ganze Domäne falsch.
Übungen
Grundübungen
- Richten Sie win-dc mit PowerShell ein: Name, Adresse, Rollen, Domäne ad.it2XX.int.
- Setzen Sie den Forwarder und legen Sie beide Rückwärtszonen an. Prüfen Sie mit Resolve-DnsName.
- Richten Sie den DHCP-Bereich für das LAN ein und prüfen Sie, ob win11 eine Adresse bekommt.
- Legen Sie die OU-Struktur Firma mit Benutzer, Gruppen, Rechner an, dazu zwei Benutzer und eine Gruppe.
- Prüfen Sie den DC mit dcdiag /q und netdom query fsmo.
- Fragen Sie von lx aus die SRV-Einträge und den RootDSE ab.
Vertiefung
- Legen Sie 20 Benutzer aus einer CSV-Datei an: Import-Csv benutzer.csv | ForEach-Object { New-ADUser … }
- Welchen Functional Level hat die Domäne? Wo sieht man das in der Oberfläche?
- Schauen Sie sich mit ldapsearch und einem Domänenbenutzer den Eintrag von max an. Welche Attribute kennen Sie aus OpenLDAP?
- Lassen Sie DHCP die DNS-Einträge der Clients selbst eintragen: Set-DhcpServerv4DnsSetting
Fehlersuche
- 1. win11 bekommt keine Adresse aus dem LAN-Bereich
Entweder ist der DHCP-Server nicht autorisiert (Get-DhcpServerInDC), oder das DHCP-Relay auf der Firewall zeigt nicht auf 10.2XX.1.11. Auf win-dc mit Get-DhcpServerv4Lease prüfen, ob überhaupt Anfragen ankommen.
- 2. win11 hat eine Adresse, findet die Domäne aber nicht
Der DHCP-Bereich gibt den falschen DNS-Server aus, z.B. die Firewall. ipconfig /all auf win11 zeigt es. Set-DhcpServerv4OptionValue -DnsServer 10.2XX.1.11
- 3. Auf win-dc funktioniert Resolve-DnsName debian.org nicht
Der Forwarder fehlt oder die Firewall lässt DNS vom DC nicht durch. Get-DnsServerForwarder
- 4. dcdiag meldet Fehler beim Test „Advertising“ oder bei der Zeit
Der Zeitdienst ist nicht als zuverlässige Quelle eingetragen. w32tm /config … /reliable:yes /update, dann Restart-Service w32time
Vertiefung
- RSAT · RSAT Windows11 · Kerberos Befehle Windows
- https://learn.microsoft.com/de-de/powershell/module/addsdeployment/install-addsforest