PowerShell ile DNS Bölgeleri ve Kayıtları Oluşturun ve Yönetin


Bir Windows yöneticisi eski güzeli kullanabilir

Dnscmd

DNS bölgelerini ve kayıtlarını yönetmek için PowerShell için cli aracı veya DNSServer modülü. Bu makalede, PowerShell kullanarak farklı DNS kayıtlarını veya bölgelerini toplu oluşturma, değiştirme ve kaldırma temel işlemlerini ele alacağız.

DNSServer PowerShell Modülü

PowerShell için DNSServer modülü, RSAT'ın bir parçasıdır. Windows 10'da RSAT'ı ayrıca kurmanız gerekecek ve Windows Server'da Sunucu Yöneticisi GUI'sini (Rol Yönetim Araçları -> DNS Sunucu Araçları) kullanarak modülü etkinleştirebilirsiniz.

DNSServer PowerShell modülünün bilgisayarınızda kurulu olduğundan emin olun:

Get-Module DNSServer -ListAvailable

İçindeki komutların listesini görüntüleyebilirsiniz (Windows Server 2016 için modül sürümünde 134 cmdlet vardır):

Get-Module DNSServer

PowerShell ile DNS Bölgelerini Yönetin

Sunucunuzdaki DNS bölgelerinin listesini görüntüleyin (bizim durumumuzda, bu bir etki alanı denetleyicisidir):

Get-DnsServerZone -ComputerName dc01

Woshub.com adlı yeni bir birincil DNS bölgesi eklemek için şu komutu çalıştırın:

Add-DnsServerPrimaryZone -Name a-d.site -ReplicationScope "Forest" -PassThru

Gördüğünüz gibi, Active Directory ile entegre birincil DNS bölgesi oluşturuldu (isDsIntegrated=True).

Bir Geriye Doğru Arama Bölgesi oluşturabilirsiniz:

Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope Domain

Etki alanındaki diğer DC'lerle yeni bir bölgeyi senkronize etmek için aşağıdaki komutu çalıştırın:

Sync-DnsServerZone -passthru

Yeni DNS bölgesindeki kayıtların listesini görüntüleyin (boş):

Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local

DNS bölgesini kaldırmak için şu komutu kullanın:

Remove-DnsServerZone -Name a-d.site -ComputerName dc01

Ayrıca bölgedeki tüm mevcut DNS kayıtlarını da kaldıracaktır.

DNSServer PowerShell Modülü ile DNS Kayıtlarını Yönetme

Belirtilen DNS bölgesinde ana bilgisayar için yeni bir A kaydı oluşturmak için şu komutu kullanın:

Add-DnsServerResourceRecordA -Name ber-rds1 -IPv4Address 192.168.100.33 -ZoneName a-d.site -TimeToLive 01:00:00

Geriye Doğru Arama Bölgesine bir PTR kaydı eklemek için önceki komuta -CreatePtr parametresini ekleyebilir veya Add-DNSServerResourceRecordPTR cmdlet'ini kullanarak işaretçiyi manuel olarak oluşturabilirsiniz:

Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.a-d.site

Belirli bir A kaydına takma ad (CNAME) eklemek için şu komutu çalıştırın:

Add-DnsServerResourceRecordCName -ZoneName a-d.site -Name Ber-RDSFarm -HostNameAlias ber-rds1.a-d.site

A kaydındaki IP adresini değiştirmek (güncellemek) için, bir DNS kaydının IP adresini doğrudan değiştiremeyeceğiniz için oldukça karmaşık bir yöntem uygulamanız gerekecektir:

$NewADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site -ComputerName dc01
$OldADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site -ComputerName dc01

Ardından $NewADNS nesnesinin IPV4Address özelliğini değiştirin:

$NewADNS.RecordData.IPv4Address = [System.Net.IPAddress]::parse('192.168.100.133')

Set-DnsServerResourceRecord cmdlet'ini kullanarak A kaydının IP adresini değiştirin:

Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName a-d.site -ComputerName dc01

A kaydının IP adresinin değiştiğinden emin olun:

Get-DnsServerResourceRecord -Name ber-rds1 -ZoneName a-d.site

-RRType parametresini kullanarak aynı türdeki DNS kayıtlarının listesini görüntüleyebilirsiniz. Belirtilen DNS bölgesindeki CNAME kayıtlarının listesini görüntüleyelim:

Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName a-d.site -RRType CNAME

Ayrıca, Where-Object'i kullanarak herhangi bir DNS kaydı parametresine göre filtreler kullanabilirsiniz. Örneğin, ana bilgisayar adlarında rds ifadesini içeren A kayıtlarının listesini görüntülemek için:

Get-DnsServerResourceRecord -ZoneName a-d.site -RRType A | Where-Object HostName -like "*rds*"

DNS kayıtlarını kaldırmak için Remove-DnsServerResourceRecord cmdlet'i kullanılır.

Örneğin, bir CNAME kaydını kaldırmak için şu komutu çalıştırın:

Remove-DnsServerResourceRecord -ZoneName a-d.local -RRType CName -Name Ber-RDSFarm

Bir A DNS kaydını kaldırmak için:

Remove-DnsServerResourceRecord -ZoneName a-d.local -RRType A -Name ber-rds1 -Force

Geriye Doğru Arama Bölgesinden bir PTR kaydını kaldırmak için:

Remove-DnsServerResourceRecord -ZoneName “100.168.192.in-addr.arpa” -RRType “PTR” -Name “33”

Bir .CSV Dosyasından Birden Çok A ve PTR DNS Kaydı Nasıl Oluşturulur?

Belirli DNS İleriye Doğru Arama Bölgesinde aynı anda birden çok A kaydı oluşturmak istediğinizi varsayalım. kullanarak bunları tek tek ekleyebilirsiniz.

Add-DnsServerResourceRecordA

cmdlet, ancak A kayıtlarını bir .CSV dosyasından toplu olarak eklemek daha kolaydır.

DNS'ye eklemek istediğiniz adları ve IP adreslerini içeren bir NewDnsRecords.txt metin dosyası oluşturun. txt dosya biçimi aşağıdaki gibidir:

HostName, IPAddress

TXT/CSV dosyanızdaki verilere göre a-d.site bölgesinde A kayıtları oluşturmak için aşağıdaki PowerShell betiğini kullanın:

Import-CSV "C:\PS\NewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName a-d.site -Name $_."HostName" -IPv4Address $_."IPAddress"
}

Aynı anda Geriye Doğru Arama Bölgesine kayıt eklemek istiyorsanız -CreatePtr parametresini

Add-DNSServerResourceRecordA

emretmek.

Ardından DNS Yöneticisi konsolunu kullanarak (

dnsmgmt.msc

) veya

Get-DnsServerResourceRecord -ZoneName a-d.local

tüm DNS kayıtlarının başarıyla oluşturulduğundan emin olun.

PTR kayıtlarını Geriye Doğru Arama Bölgesine toplu olarak eklemek istiyorsanız, aşağıdaki yapıya sahip bir metin veya CSV dosyası oluşturun:

octet,hostName,zoneName
102,ber-rds2.a-d.site,100.168.192.in-addr.arpa
103,ber-rds3.a-d.site,100.168.192.in-addr.arpa
104,ber-rds4.a-d.site,100.168.192.in-addr.arpa
105,ber-rds5.a-d.site,100.168.192.in-addr.arpa

Ardından komut dosyasını çalıştırın:

Import-CSV "C:\PS\NewDnsPTRRecords.txt" | %{
Add-DNSServerResourceRecordPTR -ZoneName $_."zoneName" -Name $_."octet" -PTRDomainName $_."hostName"
}

PTR kayıtlarınızın DNS Ters Arama Bölgesinde göründüğünden emin olun.

İlgili makaleler