จัดการ DNS ด้วย PowerShell บน Windows Server 2025 แบบเร็วและแม่นยำ

DNS คือระบบสำคัญที่ทำให้ Server, Client, Application และ Domain ภายในองค์กรสื่อสารกันได้ถูกต้อง หาก DNS มีปัญหา ระบบ Login, Active Directory, File Server, Web App และ Service ภายในองค์กรอาจล่มตามไปด้วย

บน Windows Server 2025 ผู้ดูแลระบบสามารถจัดการ DNS ผ่าน PowerShell ได้อย่างรวดเร็ว ไม่ต้องคลิกหลายหน้าต่าง และเหมาะมากกับงาน Automation ในองค์กร


① DNS บน Windows Server คืออะไร

DNS หรือ Domain Name System คือระบบแปลงชื่อเครื่องเป็น IP Address

ตัวอย่างเช่น

server01.company.local = 192.168.1.10

ถ้าไม่มี DNS ผู้ใช้งานจะต้องจำ IP Address เอง ซึ่งไม่เหมาะกับระบบองค์กร


② ทำไมต้องจัดการ DNS ด้วย PowerShell

PowerShell ช่วยให้ Admin ทำงาน DNS ได้เร็วขึ้น เช่น

  • สร้าง DNS Zone
  • เพิ่ม A Record
  • เพิ่ม CNAME
  • ลบ Record
  • ตรวจสอบ DNS Server
  • Backup DNS
  • จัดการหลาย Record พร้อมกัน

เหมาะมากสำหรับองค์กรที่มี Server และ Record จำนวนมาก


③ ตรวจสอบ DNS Server Role

ใช้คำสั่ง

Get-WindowsFeature DNS

ถ้าติดตั้งแล้วจะเห็นสถานะ Installed

หากยังไม่ติดตั้ง ใช้คำสั่ง

Install-WindowsFeature DNS -IncludeManagementTools

④ ตรวจสอบ DNS Zone ทั้งหมด

Get-DnsServerZone

คำสั่งนี้จะแสดง Zone ทั้งหมด เช่น

company.local
_msdcs.company.local

⑤ สร้าง Forward Lookup Zone

ตัวอย่าง

Add-DnsServerPrimaryZone `
-Name "company.local" `
-ZoneFile "company.local.dns"

เหมาะสำหรับระบบที่ต้องการสร้าง DNS Zone ใหม่ภายในองค์กร


⑥ สร้าง Reverse Lookup Zone

ตัวอย่าง

Add-DnsServerPrimaryZone `
-NetworkId "192.168.1.0/24" `
-ZoneFile "1.168.192.in-addr.arpa.dns"

Reverse Zone ใช้แปลง IP Address กลับเป็นชื่อเครื่อง


⑦ เพิ่ม A Record

A Record ใช้ชี้ชื่อเครื่องไปยัง IP Address

ตัวอย่าง

Add-DnsServerResourceRecordA `
-Name "server01" `
-ZoneName "company.local" `
-IPv4Address "192.168.1.10"

หลังจากนี้ผู้ใช้สามารถเรียก

server01.company.local

แทน IP Address ได้ทันที


⑧ เพิ่ม CNAME Record

CNAME ใช้สร้างชื่อเล่นให้ Server

ตัวอย่าง

Add-DnsServerResourceRecordCName `
-Name "files" `
-ZoneName "company.local" `
-HostNameAlias "server01.company.local"

จากนั้นผู้ใช้สามารถเรียก

files.company.local

ได้


⑨ เพิ่ม PTR Record

PTR ใช้กับ Reverse Lookup

ตัวอย่าง

Add-DnsServerResourceRecordPtr `
-Name "10" `
-ZoneName "1.168.192.in-addr.arpa" `
-PtrDomainName "server01.company.local"

ช่วยให้ตรวจสอบชื่อจาก IP ได้ถูกต้อง


⑩ ตรวจสอบ DNS Record

ดู Record ทั้งหมดใน Zone

Get-DnsServerResourceRecord `
-ZoneName "company.local"

ดูเฉพาะชื่อที่ต้องการ

Get-DnsServerResourceRecord `
-ZoneName "company.local" `
-Name "server01"

⑪ แก้ไข DNS Record

โดยทั่วไปวิธีที่ปลอดภัยคือ ลบ Record เดิม แล้วสร้างใหม่

ตัวอย่างลบ Record เดิม

Remove-DnsServerResourceRecord `
-ZoneName "company.local" `
-RRType "A" `
-Name "server01" `
-Force

จากนั้นเพิ่ม IP ใหม่

Add-DnsServerResourceRecordA `
-Name "server01" `
-ZoneName "company.local" `
-IPv4Address "192.168.1.20"

⑫ ลบ DNS Record

ตัวอย่าง

Remove-DnsServerResourceRecord `
-ZoneName "company.local" `
-Name "server01" `
-RRType "A" `
-Force

ควรตรวจสอบก่อนลบเสมอ เพราะ Record บางตัวอาจเกี่ยวข้องกับระบบสำคัญ


⑬ ทดสอบ DNS Resolution

ใช้คำสั่ง

Resolve-DnsName server01.company.local

หรือ

nslookup server01.company.local

ถ้าระบบตอบ IP ถูกต้อง แสดงว่า DNS ทำงานปกติ


⑭ ตรวจสอบ DNS Client Setting

ดู DNS ที่เครื่องใช้งานอยู่

Get-DnsClientServerAddress

ใช้ตรวจสอบว่า Client ชี้ไปยัง DNS Server ถูกต้องหรือไม่


⑮ ตั้งค่า DNS ให้ Network Adapter

ตัวอย่าง

Set-DnsClientServerAddress `
-InterfaceAlias "Ethernet" `
-ServerAddresses "192.168.1.10","192.168.1.11"

เหมาะสำหรับตั้งค่า DNS บน Server หลายเครื่องแบบรวดเร็ว


⑯ Clear DNS Cache

บนเครื่อง Client หรือ Server

Clear-DnsClientCache

ใช้เมื่อมีการเปลี่ยน IP หรือแก้ไข Record แล้วเครื่องยังจำค่าเก่าอยู่


⑰ ตรวจสอบ DNS Cache

Get-DnsClientCache

ช่วยดูว่าเครื่องจำชื่อและ IP อะไรไว้บ้าง


⑱ Restart DNS Service

หาก DNS Service มีปัญหา

Restart-Service DNS

ควรใช้อย่างระมัดระวังในระบบ Production เพราะอาจกระทบการใช้งานชั่วคราว


⑲ Export DNS Record

ตัวอย่าง

Get-DnsServerResourceRecord `
-ZoneName "company.local" |
Export-Csv "D:\dns-records.csv" -NoTypeInformation

เหมาะสำหรับทำเอกสาร ตรวจสอบ หรือ Audit


⑳ สร้าง DNS Record จาก CSV

ตัวอย่างไฟล์

Name,IPAddress
server01,192.168.1.10
server02,192.168.1.11
server03,192.168.1.12

Script

Import-Csv "D:\dns-records.csv" | ForEach-Object {
Add-DnsServerResourceRecordA `
-Name $_.Name `
-ZoneName "company.local" `
-IPv4Address $_.IPAddress
}

เหมาะมากสำหรับสร้าง Record จำนวนมากในครั้งเดียว


㉑ ปัญหา DNS ที่พบบ่อย

ปัญหายอดนิยมคือ

  • Record ผิด IP
  • ไม่มี Reverse Zone
  • Client ชี้ DNS ผิด
  • Cache เก่าค้างอยู่
  • DNS Service หยุดทำงาน
  • Replication ระหว่าง Domain Controller ยังไม่สมบูรณ์

การใช้ PowerShell ช่วยให้ตรวจสอบปัญหาเหล่านี้ได้เร็วขึ้นมาก


㉒ Best Practice สำหรับ DNS Server

ควรทำดังนี้

  • ใช้ DNS Server อย่างน้อย 2 เครื่อง
  • ตั้งค่า Client ให้ชี้ DNS ภายใน
  • แยกชื่อ Record ให้เป็นมาตรฐาน
  • ลบ Record เก่าที่ไม่ได้ใช้งาน
  • ตรวจสอบ Zone เป็นประจำ
  • Backup DNS ก่อนแก้ไขใหญ่
  • ใช้ PowerShell Export รายงานเป็นรอบ ๆ

DNS ที่ดีต้องแม่นยำ สะอาด และตรวจสอบย้อนหลังได้


㉓ GUI หรือ PowerShell ดีกว่า

หัวข้อDNS ManagerPowerShell
เริ่มต้นง่ายดีมากปานกลาง
เพิ่ม Record เดียวดีดี
เพิ่มหลาย Recordช้าเร็วมาก
Automationต่ำสูง
Export Reportจำกัดดีมาก
เหมาะกับ Enterpriseปานกลางดีมาก

สำหรับงานเล็กใช้ GUI ได้ แต่ถ้าเป็นระบบจริง PowerShell ช่วยประหยัดเวลาได้มากกว่า


㉔ สรุป

การจัดการ DNS ด้วย PowerShell บน Windows Server 2025 ช่วยให้ผู้ดูแลระบบทำงานได้รวดเร็ว แม่นยำ และลดความผิดพลาดจากการคลิกตั้งค่าทีละรายการ โดยเฉพาะองค์กรที่มี DNS Record จำนวนมาก หรือมีหลายสาขา

ทีมงาน comsiam แนะนำให้ Admin ฝึกใช้ PowerShell กับ DNS ตั้งแต่ระดับพื้นฐาน เช่น การเพิ่ม A Record, CNAME, PTR ไปจนถึงการ Export และ Import ผ่าน CSV เพราะเป็นทักษะที่ใช้งานจริงได้ทุกวัน และ comsiam มองว่า DNS ที่จัดการดี คือรากฐานของ Active Directory และระบบองค์กรที่เสถียร

คำถามชวนคิด

ถ้าคุณต้องเพิ่ม DNS Record ใหม่ 300 รายการ คุณจะเปิด DNS Manager แล้วคลิกทีละรายการ หรือใช้ PowerShell อ่านจาก CSV แล้วสร้างทั้งหมดในครั้งเดียว?