PowerShell : Toplu olarak DNS kaydı ekleyen script

Efor gerektiren, sürekli aynı döngüde tekrarlayan işlem adımlarını hem zamanı verimli kullanmak hem de hata payını azaltmak adına scriptlerle çalışmak çok faydalıdır. Bu kapsamda özelikle yeni ve geniş çaplı projelerde ihtiyaç duyulan toplu dns kaydı oluşturma operasyonları için ufak bir script hazırladım. Kullanıcı dostu bir script olması için uğraştım, umarım kullanacaklar için faydalı olur.

Scripti buradan indirebilirsiniz.

Bilgilendirme: Sadece bu site için değil, internet üzerinden indirdiğiniz her script için, önce kod kısmını inceleyip, daha sonra test ortamlarınızda parça parça uygulama yapıp, scriptin ortamınız için uygun olup olmadığından emin olarak genel kullanımınıza dahil ediniz.

Kullanım:

Kullanımı kolay bir script ilk adımda dns server name ya da ipsinin girilmesi istiyor. Boş bırakılırsa localhost olarak alıyor. Eğer belirttiğiniz sunucuya bağlantı kuramazsa uyarı verecektir.

İkinci adımda dns kayıtlarını alacağı csv dosyasını kontrol ediyor. Ben örnek bir csv dosyası ekledim scriptin yanında bunun üzerine kayıtlarınızı girip kaydederek dosyayı kullanabilirsiniz. Csv dosya isminde değişik yapmamanız gerekmektedir.

“Üstteki resimden de anlaşılacağı gibi Deneme4 ve Deneme5 için hata mesajı üretmesini bekliyoruz”

Üçüncü adımda csv dosyasından çektiği dataları işlemeye başlıyor, eğer kayıt işleme sırasında bir hata alırsa ekranda hata ile ilgili mesaj çıkacaktır.

“Deneme4 ve Deneme5 için hata mesajları ekranda gözüküyor”

Powershell Kod:

Do{
$DnsServer = Read-Host -Prompt “Lütfen Dns server name veya ipsini giriniz”
If ($DnsServer -eq “”) {$DnsServer = ‘LocalHost’}
If ((Test-NetConnection -ComputerName $DnsServer -Port 53 -InformationLevel Quiet -ErrorAction SilentlyContinue -WarningAction SilentlyContinue) -like “False”){
“Hata: Dns Server bilgilerini kontrol edip tekrar giriniz”
$Kontrol = “0”
} Else {$Kontrol = “1”}
} Until ($Kontrol -ne “0”)

If ((Get-Item -Path .\Dnsliste.csv -ErrorAction SilentlyContinue -WarningAction SilentlyContinue).Exists -ne “True”)
{
“DnsListe.csv dosyasi bulunamadi, Lütfen dosyayi kontrol edip tekrar deneyiniz”
Exit
} Else {$KayitListesi = Import-Csv -Path .\DnsListe.csv
}

foreach ($KayitTek in $KayitListesi){

try {
Add-DnsServerResourceRecordA -ComputerName $DnsServer -Name $KayitTek.HostName -IPv4Address $KayitTek.Ipv4 -ZoneName $KayitTek.ZoneName -CreatePtr -AllowUpdateAny -ErrorAction SilentlyContinue -WarningAction SilentlyContinue
}
catch {
Write-Host -ForegroundColor Yellow $KayitTek.HostName ” Dns kaydi icin hata tespit edildi”
Write-Host -ForegroundColor Red -BackgroundColor Black “Hata: ” $_.Exception.Message
}

}