Try   HackMD

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)
  1. Starten der folgenden Scripte, analyse der erzeugten Dateien
    a. ADHC.ps1
    b. ADHealthCheck_v2_Signed.ps1
    c. ADDS_Inventory_V2_Signed.ps1

Powershell Abfragen

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"
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"
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"
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"
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"
Get-ADUser krbtgt -Property PasswordLastSet