ผู้ดูแลระบบ Windows สามารถใช้ Dnscmd
. ตัวเก่าได้ เครื่องมือ cli หรือ DNSServer โมดูลสำหรับ PowerShell เพื่อจัดการโซน DNS และระเบียน ในบทความนี้ เราจะพูดถึงการดำเนินการพื้นฐานของการสร้าง แก้ไข และลบระเบียน DNS หรือโซนต่างๆ จำนวนมากโดยใช้ PowerShell
โมดูล DNSServer PowerShell
DNSServer โมดูลสำหรับ PowerShell เป็นส่วนหนึ่งของ RSAT ใน Windows 10 คุณจะต้องติดตั้ง RSAT แยกต่างหาก และใน Windows Server คุณสามารถเปิดใช้งานโมดูลโดยใช้ Server Manager GUI (Role Administration Tools -> DNS Server Tools)
ตรวจสอบให้แน่ใจว่าได้ติดตั้งโมดูล DNSServer PowerShell บนคอมพิวเตอร์ของคุณแล้ว:
Get-Module DNSServer –ListAvailable
คุณสามารถแสดงรายการคำสั่งในนั้นได้ (เวอร์ชันโมดูลสำหรับ Windows Server 2016 มี 134 cmdlets):
Get-Module DNSServer
จัดการโซน DNS ด้วย PowerShell
แสดงรายการโซน DNS บนเซิร์ฟเวอร์ของคุณ (ในกรณีของเราคือตัวควบคุมโดเมน):
Get-DnsServerZone –ComputerName dc01
หากต้องการเพิ่มโซน DNS หลักใหม่ที่ชื่อ woshub.com ให้รันคำสั่งนี้:
Add-DnsServerPrimaryZone -Name woshub.com -ReplicationScope "Forest" –PassThru
อย่างที่คุณเห็น มีการสร้างโซน DNS หลักที่รวมเข้ากับ Active Directory แล้ว (isDsIntegrated=True )
คุณสามารถสร้าง Reverse Lookup Zone ได้:
Add-DnsServerPrimaryZone -NetworkId "192.168.100.0/24" -ReplicationScope Domain
หากต้องการซิงโครไนซ์โซนใหม่กับ DC อื่นในโดเมน ให้เรียกใช้คำสั่งต่อไปนี้:
Sync-DnsServerZone –passthru
แสดงรายการของระเบียนในโซน DNS ใหม่ (ว่างเปล่า):
Get-DnsServerResourceRecord -ComputerName dc01 -ZoneName contoso.local
หากต้องการลบโซน DNS ให้ใช้คำสั่ง:
Remove-DnsServerZone -Name woshub.com -ComputerName dc01
นอกจากนี้ยังจะลบระเบียน DNS ที่มีอยู่ทั้งหมดในโซนด้วย
การจัดการบันทึก DNS ด้วยโมดูล DNSServer PowerShell
หากต้องการสร้างระเบียน A ใหม่สำหรับโฮสต์ในโซน DNS ที่ระบุ ให้ใช้คำสั่งนี้:
Add-DnsServerResourceRecordA -Name ber-rds1 -IPv4Address 192.168.100.33 -ZoneName woshub.com -TimeToLive 01:00:00
หากต้องการเพิ่มระเบียน PTR ไปยังโซนการค้นหาแบบย้อนกลับ คุณสามารถเพิ่ม –CreatePtr ไปยังคำสั่งก่อนหน้าหรือสร้างตัวชี้ด้วยตนเองโดยใช้ Add-DNSServerResourceRecordPTR cmdlet:
Add-DNSServerResourceRecordPTR -ZoneName 100.168.192.in-addr.arpa -Name 33 -PTRDomainName ber-rds1.woshub.com
ในการเพิ่มนามแฝง (CNAME ) สำหรับระเบียน A ที่ระบุ ให้รันคำสั่งนี้:
Add-DnsServerResourceRecordCName -ZoneName woshub.com -Name Ber-RDSFarm -HostNameAlias ber-rds1.woshub.com
ในการเปลี่ยน (อัปเดต) ที่อยู่ IP ในระเบียน A คุณจะต้องใช้วิธีการที่ค่อนข้างซับซ้อน เนื่องจากคุณไม่สามารถเปลี่ยนที่อยู่ IP ของระเบียน DNS ได้โดยตรง:
$NewADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01
$OldADNS = get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com -ComputerName dc01
จากนั้นเปลี่ยนคุณสมบัติ IPV4Address ของวัตถุ $NewADNS:
$NewADNS.RecordData.IPv4Address = [System.Net.IPAddress]::parse('192.168.100.133')
เปลี่ยนที่อยู่ IP ของระเบียน A โดยใช้ Set-DnsServerResourceRecord cmdlet:
Set-DnsServerResourceRecord -NewInputObject $NewADNS -OldInputObject $OldADNS -ZoneName woshub.com -ComputerName dc01
ตรวจสอบให้แน่ใจว่ามีการเปลี่ยนแปลงที่อยู่ IP ของระเบียน A:
Get-DnsServerResourceRecord -Name ber-rds1 -ZoneName woshub.com
คุณสามารถแสดงรายการระเบียน DNS ที่เป็นประเภทเดียวกันได้โดยใช้ –RRType พารามิเตอร์. มาแสดงรายการระเบียน CNAME ในโซน DNS ที่ระบุ:
Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME
คุณยังใช้ตัวกรองตามพารามิเตอร์ระเบียน DNS ได้โดยใช้ Where-Object ตัวอย่างเช่น แสดงรายการของระเบียน A ที่มี rds วลีในชื่อโฮสต์:
Get-DnsServerResourceRecord -ZoneName woshub.com -RRType A | Where-Object HostName -like "*rds*"
ในการลบระเบียน DNS จะใช้ cmdlet Remove-DnsServerResourceRecord
ตัวอย่างเช่น หากต้องการลบระเบียน CNAME ให้เรียกใช้คำสั่ง:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType CName -Name Ber-RDSFarm
วิธีลบระเบียน A DNS:
Remove-DnsServerResourceRecord -ZoneName woshub.local -RRType A -Name ber-rds1 –Force
ในการลบบันทึก PTR ออกจากโซนการค้นหาแบบย้อนกลับ:
Remove-DnsServerResourceRecord -ZoneName “100.168.192.in-addr.arpa” -RRType “PTR” -Name “33”
วิธีการสร้างหลายระเบียน A และ PTR DNS จากไฟล์ .CSV
สมมติว่าคุณต้องการสร้างระเบียน A หลายรายการพร้อมกันในโซนการค้นหา DNS Forward Lookup ที่ระบุ คุณสามารถเพิ่มทีละรายการโดยใช้ Add-DnsServerResourceRecordA
cmdlet แต่ง่ายกว่าที่จะเพิ่มระเบียน A เป็นกลุ่มจากไฟล์ .CSV
สร้างไฟล์ข้อความ NewDnsRecords.txt ด้วยชื่อและที่อยู่ IP ที่คุณต้องการเพิ่มใน DNS รูปแบบไฟล์ txt มีดังนี้:
ชื่อโฮสต์, IPAddress
ในการสร้างระเบียน A ในโซน woshub.com ตามข้อมูลในไฟล์ TXT/CSV ของคุณ ให้ใช้สคริปต์ PowerShell ต่อไปนี้:
Import-CSV "C:\PS\NewDnsRecords.txt" | %{
Add-DNSServerResourceRecordA -ZoneName woshub.com -Name $_."HostName" -IPv4Address $_."IPAddress"
}
หากคุณต้องการเพิ่มระเบียนไปยัง Reverse Lookup Zone พร้อมกัน ให้เพิ่ม –CreatePtr พารามิเตอร์ Add-DNSServerResourceRecordA
. ของคุณ คำสั่ง
จากนั้นใช้คอนโซลตัวจัดการ DNS (dnsmgmt.msc
) หรือ Get-DnsServerResourceRecord -ZoneName woshub.local
ตรวจสอบให้แน่ใจว่าสร้างระเบียน DNS เรียบร้อยแล้ว
หากคุณต้องการเพิ่มระเบียน PTR ไปยัง Reverse Lookup Zone เป็นกลุ่ม ให้สร้างข้อความหรือไฟล์ CSV ที่มีโครงสร้างดังต่อไปนี้:
<ก่อนหน้า>octet,hostName,zoneName102,ber-rds2.woshub.com,100.168.192.in-addr.arpa103,ber-rds3.woshub.com,100.168.192.in-addr.arpa104,ber-rds4.woshub .com,100.168.192.in-addr.arpa105,ber-rds5.woshub.com,100.168.192.in-addr.arpaจากนั้นเรียกใช้สคริปต์:
Import-CSV "C:\PS\NewDnsPTRRecords.txt" | %{
Add-DNSServerResourceRecordPTR -ZoneName $_."zoneName" -Name $_."octet" -PTRDomainName $_."hostName"
}
ตรวจสอบให้แน่ใจว่าบันทึก PTR ของคุณปรากฏใน DNS Reverse Lookup Zone