วิธีใช้ DSC กับ Windows Server 2025 ให้ Server ดูแลตัวเองได้

หลังจากรู้จัก Desired State Configuration (DSC) แล้ว ขั้นตอนต่อไปคือการนำ DSC มาใช้งานจริงบน Windows Server 2025 เพื่อให้ Server รักษาค่ามาตรฐานของตัวเองโดยอัตโนมัติ

DSC ช่วยให้ Administrator ไม่ต้องคอยตรวจสอบทุกอย่างด้วยตนเอง เพราะระบบสามารถตรวจจับและแก้ไข Configuration Drift ได้อัตโนมัติ ไม่ว่าจะเป็น Service หยุดทำงาน, Feature ถูกถอนการติดตั้ง หรือการตั้งค่าที่เปลี่ยนไปจากมาตรฐานองค์กร


① เตรียมความพร้อมก่อนใช้งาน DSC

ตรวจสอบ PowerShell Version

$PSVersionTable

ควรใช้ PowerShell เวอร์ชันใหม่ที่รองรับ DSC อย่างสมบูรณ์

จากนั้นตรวจสอบว่า DSC พร้อมใช้งาน

Get-DscLocalConfigurationManager

หากแสดงข้อมูล Local Configuration Manager แสดงว่าพร้อมใช้งาน


② Local Configuration Manager (LCM)

LCM คือ Service ที่คอยควบคุม DSC บนเครื่อง

หน้าที่หลัก

  • อ่าน Configuration
  • ตรวจสอบสถานะเครื่อง
  • เปรียบเทียบค่าปัจจุบัน
  • แก้ไขให้ตรงตาม Configuration

เปรียบเสมือนผู้คุมกฎของ Server


③ สร้าง Configuration แรก

ตัวอย่างติดตั้ง IIS อัตโนมัติ

Configuration InstallIIS {

Node localhost {

WindowsFeature IIS {

Name = "Web-Server"
Ensure = "Present"

}

}

}

Configuration นี้ระบุว่า

IIS ต้องถูกติดตั้งเสมอ

④ Compile Configuration

รัน

InstallIIS

ระบบจะสร้างไฟล์

InstallIIS\localhost.mof

MOF คือไฟล์ที่ DSC ใช้จริง


⑤ Apply Configuration

ใช้คำสั่ง

Start-DscConfiguration `
-Path .\InstallIIS `
-Wait `
-Verbose

DSC จะเริ่มติดตั้ง IIS ให้โดยอัตโนมัติ


⑥ ตรวจสอบผลลัพธ์

หลังจาก Apply แล้ว

ตรวจสอบ

Get-WindowsFeature Web-Server

หากขึ้น

Installed

แสดงว่าทำงานสำเร็จ


⑦ ดู Configuration ปัจจุบัน

Get-DscConfiguration

ใช้ดู Resource ทั้งหมดที่ DSC กำลังควบคุมอยู่


⑧ ทดสอบ Configuration

ตัวอย่าง

Test-DscConfiguration

ผลลัพธ์

True

หมายถึง Server ยังอยู่ในสถานะที่ถูกต้อง


⑨ ตั้งค่า Service ให้ทำงานตลอด

ตัวอย่าง

Configuration DNSService {

Node localhost {

Service DNS {

Name = "DNS"
State = "Running"

}

}

}

หาก Service ถูกหยุด DSC สามารถเปิดกลับได้


⑩ ควบคุม Startup Type

ตัวอย่าง

Service DNS {

Name = "DNS"
State = "Running"
StartupType = "Automatic"

}

ช่วยป้องกันการเปลี่ยนค่าโดยไม่ตั้งใจ


⑪ ควบคุมไฟล์สำคัญ

ตัวอย่าง

Configuration ConfigFile {

Node localhost {

File ConfigFile {

DestinationPath = "C:\Config.txt"
Contents = "Production Server"

}

}

}

หากไฟล์หาย DSC สามารถสร้างกลับได้


⑫ ควบคุม Folder

ตัวอย่าง

File LogFolder {

DestinationPath = "D:\Logs"
Type = "Directory"
Ensure = "Present"

}

ช่วยรักษาโครงสร้างระบบให้เหมือนเดิม


⑬ ควบคุม Registry

ตัวอย่าง

Registry Example {

Key = "HKLM:\Software\Company"
ValueName = "Enabled"
ValueData = "1"

}

ใช้กำหนด Security และ Application Setting


⑭ ติดตั้งหลาย Feature พร้อมกัน

ตัวอย่าง

WindowsFeature IIS {

Name = "Web-Server"
Ensure = "Present"

}

WindowsFeature Telnet {

Name = "Telnet-Client"
Ensure = "Present"

}

ช่วย Deploy Server ใหม่ได้เร็วมาก


⑮ ควบคุมหลายเครื่องพร้อมกัน

ตัวอย่าง

Configuration MultiServer {

Node "SERVER01","SERVER02" {

WindowsFeature IIS {

Name = "Web-Server"
Ensure = "Present"

}

}

}

เหมาะสำหรับองค์กรที่มีหลาย Server


⑯ Apply Configuration ให้หลายเครื่อง

ตัวอย่าง

Start-DscConfiguration `
-ComputerName SERVER01,SERVER02 `
-Path .\MultiServer `
-Wait `
-Verbose

ช่วยลดเวลาการติดตั้งอย่างมหาศาล


⑰ ตั้งค่า Auto Correct

DSC สามารถแก้ไขค่าเองได้

ตรวจสอบสถานะ

Get-DscLocalConfigurationManager

เปลี่ยน Configuration Mode

ApplyAndAutoCorrect

ระบบจะซ่อมแซม Configuration อัตโนมัติ


⑱ ตั้งค่า Consistency Check

ตัวอย่าง

ConfigurationModeFrequencyMins = 30

หมายถึง

ตรวจสอบทุก 30 นาที

ช่วยให้ระบบรักษามาตรฐานได้ตลอดเวลา


⑲ ดู Log ของ DSC

ใช้คำสั่ง

Get-WinEvent `
-LogName Microsoft-Windows-Dsc/Operational

ช่วยวิเคราะห์ปัญหา Configuration


⑳ ลบ Configuration ปัจจุบัน

ตัวอย่าง

Remove-DscConfigurationDocument `
-Stage Current

ใช้เมื่อต้องการเริ่มใหม่ทั้งหมด


㉑ DSC กับ Domain Controller

ตัวอย่างงานยอดนิยม

  • ติดตั้ง AD DS
  • ตรวจสอบ Service
  • ควบคุม DNS
  • ควบคุม SYSVOL

ช่วยให้ Domain Controller ทุกเครื่องมีมาตรฐานเดียวกัน


㉒ DSC กับ IIS Server

ตัวอย่าง

  • ติดตั้ง IIS
  • เปิด Service
  • สร้าง Folder
  • Deploy Configuration

เหมาะกับ Web Farm และ Load Balancing


㉓ DSC กับ File Server

ตัวอย่าง

  • Shared Folder
  • NTFS Permission
  • Storage Configuration

ลดความผิดพลาดจากการตั้งค่าด้วยมือ


㉔ DSC กับ Security

ใช้ควบคุม

  • Firewall
  • Registry
  • Audit Policy
  • Security Baseline

ช่วยให้ผ่าน Compliance ได้ง่ายขึ้น


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

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

  • Syntax ผิด
  • Resource ไม่รองรับ
  • Permission ไม่พอ
  • MOF Error
  • LCM Configuration ผิด
  • Network Problem

ควรทดสอบใน Lab ก่อนเสมอ


㉖ Best Practice สำหรับ DSC

ควรทำดังนี้

  • ใช้ Source Control
  • แยก Test และ Production
  • เก็บ MOF File เป็นระบบ
  • ตั้งชื่อ Configuration ชัดเจน
  • เปิด Logging
  • ทดสอบ Auto Correct

จะช่วยให้การใช้งานมีเสถียรภาพมากขึ้น


㉗ DSC กับ Infrastructure as Code

DSC ถือเป็นหนึ่งในเครื่องมือ Infrastructure as Code ของ Microsoft

ช่วยให้

Server Configuration
=
Source Code

ทำให้การบริหารระบบมีมาตรฐานและตรวจสอบย้อนหลังได้


㉘ สรุป

DSC เป็นเครื่องมือสำคัญบน Windows Server 2025 ที่ช่วยให้ Administrator กำหนดมาตรฐานของ Server และให้ระบบตรวจสอบหรือแก้ไขตัวเองได้โดยอัตโนมัติ ลดปัญหา Configuration Drift และช่วยให้การบริหาร Infrastructure ขนาดใหญ่เป็นเรื่องง่ายขึ้น

ทีมงาน comsiam แนะนำให้เริ่มต้นจาก Configuration ง่าย ๆ เช่น Service, Windows Feature และ File Management ก่อน แล้วค่อยพัฒนาไปสู่ระบบ Automation ที่ซับซ้อนขึ้น เพราะ comsiam มองว่า DSC คือสะพานสำคัญที่เชื่อมการดูแล Server แบบดั้งเดิมเข้าสู่โลก Infrastructure as Code อย่างแท้จริง

คำถามชวนคิด

หากคุณมี Web Server 100 เครื่อง และต้องการให้ทุกเครื่องมี Configuration เหมือนกันทุกประการ คุณจะตรวจสอบทีละเครื่อง หรือจะให้ DSC ควบคุมทั้งหมดแทน?