---
# System prepended metadata

title: AD Health Check Dokumentation

---

# AD Health Check Dokumentation

## Planung
Um eine AD Health Check durchzuführen, müssen im Vorfeld diverse Informationen mit dem Kunden abgestimmt werden.

### Zielsetzung
Dem Kunden sollte im Vorfeld eine Frage gestellt und auf Basis dieser eine entsprechende Diskussion eingeleitet werden.

"Was erhoffen Sie sich durch einen AD Health Check"

### Technische Voraussetzungen 
- ein Windows 10 Domain joined Endgerät mit installiertem Office Produkt (Word ist in der Regel ausreichend)
- Ein Account zur Anmeldung auf den DCs oder einem Adminserver (zur Prüfung der Dienste und Eventlogs)
- Ein Account zur Anmeldung am Windows 10 Endgerät

### Aufwandsschätzung 
3-5 Tage (Sammeln der Informationen, Aufbereiten der Informationen, Ergebnisbesprechung mit dem Kunden)

## Umsetzung

1. Repadmin /replsummary
	auf Fehler prüfen
2. Repadmin /Showrepl
	auf Fehler prüfen
3. Forrest und Domain Functional Level prüfen
	(get-addomain).DomainMode
	(get-adforrest).ForestMode
4. Prüfung der Versionsstände der Domain Controller
	[System.environment]::OSVersion.Version
5. Prüfung der auf dem DC installierten Rollen und Features
	Import-module servermanager ; Get-WindowsFeature | where-object {$_.Installed -eq $True} | format-list DisplayName
6. Prüfung der aud den DCs laufenden Dienste
	get-service DFSR
	get-service	FRS
	get-service DNS
	get-service NTDS
	get-service NETLOGON
7. Prüfung der essentiellen AD Dienste via DCDIAG
	dcdiag /test:netlogons
	dcdiag /test:replications
	dcdiag /test:advertising
	dcdiag /test:fsmocheck
	dcdiag /test:DFSREvent
	dcdiag /test:SystemLog
	dcdiag /test:KnowsOfRoleHolders
	dcdiag /test:SysVolCheck
8. Prüfung der Eventlogs auf den DCs
	Administrative Ereignisse
	DNS Server
	DFS Replikation
	Directory Service
9. Prüfung DNS Einstellungen

10. Security Relevante Prüfungen
- ms-DS-MachineAccountQuota 
- Prüfung der Standardgruppen (Domain Admins, Enterprise Admins, Schema Admins, etc.)
- Get-ADUser -Identity krbtgt -Properties PasswordLastSet (sollte regelmäßig geändert werden)

10. Starten der folgenden Scripte, analyse der erzeugten Dateien
	a. ADHC.ps1 
	b. ADHealthCheck_v2_Signed.ps1
	c. ADDS_Inventory_V2_Signed.ps1

### Powershell Abfragen

```powershell=
Get-ADComputer -Filter {OperatingSystem -Like '*Windows 7*'} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation | Export-Csv -Delimiter ";" -NoClobber -NoTypeInformation -Encoding UTF8 -Path "C:\temp\$(Get-Date -Format yyyyMMdd-HHmm)-ComputerWindows7.csv"
```

```powershell=
Get-ADComputer -Filter {OperatingSystem -Like '*Windows 8*'} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation | Export-Csv -Delimiter ";" -NoClobber -NoTypeInformation -Encoding UTF8 -Path "C:\temp\$(Get-Date -Format yyyyMMdd-HHmm)-ComputerWindows8.csv"
```
```powershell=
Get-ADComputer -Filter {OperatingSystem -Like '*Windows 2000*'} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation |Export-Csv -Delimiter ";" -NoClobber -NoTypeInformation -Encoding UTF8 -Path "C:\temp\$(Get-Date -Format yyyyMMdd-HHmm)-ComputerWindows2000.csv"
```
```powershell=
Get-ADComputer -Filter {OperatingSystem -Like '*Windows Server 2003*'} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation | Export-Csv -Delimiter ";" -NoClobber -NoTypeInformation -Encoding UTF8 -Path "C:\temp\$(Get-Date -Format yyyyMMdd-HHmm)-ComputerWindows2003.csv"
```
```powershell=
Get-ADComputer -Filter {OperatingSystem -Like '*Windows Server 2008*'} -Properties OperatingSystem,OperatingSystemVersion,OperatingSystemServicePack,LastLogonDate,ServicePrincipalName,TrustedForDelegation,TrustedtoAuthForDelegation | Export-Csv -Delimiter ";" -NoClobber -NoTypeInformation -Encoding UTF8 -Path "C:\temp\$(Get-Date -Format yyyyMMdd-HHmm)-ComputerWindows2008.csv"
```
```powershell=
Get-ADUser krbtgt -Property PasswordLastSet
```

