Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

ผู้ดูแลระบบ 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)

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

ตรวจสอบให้แน่ใจว่าได้ติดตั้งโมดูล DNSServer PowerShell บนคอมพิวเตอร์ของคุณแล้ว:

Get-Module DNSServer –ListAvailable

คุณสามารถแสดงรายการคำสั่งในนั้นได้ (เวอร์ชันโมดูลสำหรับ Windows Server 2016 มี 134 cmdlets):

Get-Module DNSServer

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

จัดการโซน DNS ด้วย PowerShell

แสดงรายการโซน DNS บนเซิร์ฟเวอร์ของคุณ (ในกรณีของเราคือตัวควบคุมโดเมน):

Get-DnsServerZone –ComputerName dc01

หากต้องการเพิ่มโซน DNS หลักใหม่ที่ชื่อ woshub.com ให้รันคำสั่งนี้:

Add-DnsServerPrimaryZone -Name woshub.com -ReplicationScope "Forest" –PassThru

อย่างที่คุณเห็น มีการสร้างโซน DNS หลักที่รวมเข้ากับ Active Directory แล้ว (isDsIntegrated=True )

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

คุณสามารถสร้าง 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 และบันทึกด้วย PowerShell

หากต้องการลบโซน 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 และบันทึกด้วย PowerShell

คุณสามารถแสดงรายการระเบียน DNS ที่เป็นประเภทเดียวกันได้โดยใช้ –RRType พารามิเตอร์. มาแสดงรายการระเบียน CNAME ในโซน DNS ที่ระบุ:

Get-DnsServerResourceRecord -ComputerName DC01 -ZoneName woshub.com -RRType CNAME

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

คุณยังใช้ตัวกรองตามพารามิเตอร์ระเบียน DNS ได้โดยใช้ Where-Object ตัวอย่างเช่น แสดงรายการของระเบียน A ที่มี rds วลีในชื่อโฮสต์:

Get-DnsServerResourceRecord -ZoneName woshub.com -RRType A | Where-Object HostName -like "*rds*"

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

ในการลบระเบียน 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

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

ในการสร้างระเบียน 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 เรียบร้อยแล้ว

สร้างและจัดการโซน DNS และบันทึกด้วย PowerShell

หากคุณต้องการเพิ่มระเบียน 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