Voici un script qui permet de vérifier que tous les enregistrements SRV sont bien créés et présents dans vos DNS après la promotion d’un contrôleur de domaine ou lors de sa rétrogradation.
Pour cela il suffit d’extraire du fichier netlogon.dns les enregistrements normalement présents dans vos DNS.
Le fichier se situe sur un contrôleur de domaine dans Lecteur:\%SystemRoot%\System32\Config\netlogon.dns.
Exemple
_ldap._tcp.pdc._msdcs.<DnsDomainName>
_ldap._tcp.gc._msdcs.<DnsForestName>
_kerberos._tcp.dc._msdcs.<DnsDomainName>
_ldap._tcp.dc._msdcs.<DnsDomainName
Les sauvegarder dans un fichier TXT et lancer ensuite le script qui va vous générer un rapport Excel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
#====================================================== # # NAME: Check_DNS_SRV_record # # AUTHOR: Mehdi JERBI # # Source : www.jerbi.fr #======================================================== #Path of the folder search $dc = 0 $dc = read-host "Enter DCname with his short name" #Creation of output file $ScriptPath = Split-Path -parent $MyInvocation.MyCommand.Definition $CurrentDate = Get-Date -format yyyyMMdd_hhmmss $ResultFile = $ScriptPath+ "\" + $CurrentDate + "_DNS_SRV_result.csv" #Import TXT file Function Get-FileName($initialDirectory) { [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") | Out-Null $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog $OpenFileDialog.initialDirectory = $initialDirectory $OpenFileDialog.filter = "Text files (*.TXT)|*.TXT" $OpenFileDialog.ShowDialog() | Out-Null $OpenFileDialog.filename if ($OpenFileDialog.filename -eq "") { Write-Host "file not found" exit } } $Inputfile = Get-FileName "c:\" $Records = Get-Content $Inputfile $ErrorActionPreference = "silentlycontinue" #build of the result $a = New-Object -comobject Excel.Application $a.Visible = $True $b = $a.Workbooks.Add() $c = $b.Worksheets.Item(1) $col = 1 $ligne = 1 $c.Cells.Item(1,1) = "Zone Search" $c.Cells.Item(1,1).Interior.colorindex = 15 $c.Cells.Item(1,2) = "Found" $ligne++ #Search SRV record Foreach ($zone in $Records) { $command = nslookup -q=SRV $zone $test = 0 foreach ($found in $command) { if ($found -match $dc) { $test=1 } } if ($test -eq "0") { $col = 1 $c.Cells.Item($ligne,$col) = [string]$zone $col++ $c.Cells.Item($ligne,$col) = [string] "NOK" $col++ $ligne ++ } else { $col = 1 $c.Cells.Item($ligne,$col) = [string]$zone $col++ $c.Cells.Item($ligne,$col) = [string] "OK" $col++ $ligne ++ } } # Autosize columns $c.columns.item("A:D").EntireColumn.AutoFit() $b.SaveAs($ResultFile) |