The estimated reading time 2 minutes
Auswertung der DC Locator SRV Einträge aller AD-Sites einer Domäne
Es ist immer wieder notwendig innerhalb einer Domäne mit mehreren Sites die DC Locator SRV Einträge der Sites zu kontrollieren. Bei einer bzw. zwei Sites stellt das noch kein großes Problem dar. Wenn es dann aber mal in die Region 5-10 Sites oder auch mehr kommt, sieht die Welt ganz anders aus. Dann wird das ganze mühsame Klickarbeit, die man sich mit einem kleinen Powershell Skript sparen kann.
Für Informationen zu den einzelnen DNS Einträgen innerhalb eines AD siehe folgenden Link:
https://technet.microsoft.com/en-us/library/cc759550(v=ws.10).aspx
In diesem Artikel geht es also eigentlich nur um folgenden Sachverhalt:
Warum überhaupt der Aufwand? Nun ja, sollten die SRV Einträge veraltet sein, sind oft lange Anmeldezeiten der Clients eine Folge. Die versuchen dann natürlich zuerst zum DC der Site zu verbinden bis festgestellt wird, dass dieser gar nicht mehr erreichbar ist.
Hier zunächst das Skript:
#define the log path! $logpath = "C:\temp\sites-" #################################################### #find date and convert to string $date=((Get-Date).ToString('yyyy-MM-dd-HH-mm-ss')) #defines the path where to find the log file of this script $Logfile = $logpath+$date+".log" #convert date and time to string $date=((Get-Date).ToString('yyyy-MM-dd-HH-mm-ss')) #get addomain $domain = ((Get-WmiObject Win32_ComputerSystem).Domain) #get all sites $sites = (([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().Sites).Name) Function Write-Log { Param ([string]$logstring) Add-content $Logfile -value $logstring } Write-Log "Domainname: $domain" Write-Log "-------------" foreach ($site in $sites){ $srv = (Resolve-DnsName -Type SRV _ldap._tcp.$site._sites.$domain | ft Name,Type,NameTarget,Port | Out-String ) Write-Log "Sitename: $site" Write-Log "-------------" Write-Log "$srv" }
Es muss innerhalb des Skriptes nichts getan werden, lediglich der Pfad für das Log-File muss definiert werden. (erste Zeile)
Die einfache Variante ist, dieses Skript in der ISE auszuführen, da hier auch gleich die Variable angepasst werden kann.
Das Skript versieht automatisch das Logfile mit dem aktuellen Datum und Uhrzeit, somit wird nichts überschrieben und die Daten können auch zu Dokumentationszwecken abgelegt werden.
Außerdem werden die jeweiligen Sites innerhalb des Logfiles wie folgt dargestellt.
OUTPUT
Weitere Funktionen werde ich je nach Zeit und Lust einbauen, sollte jemand spezielle Fragen / Wünsche haben einfach eine Nachricht hinterlassen.
Viel Spaß damit.