# 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 ```