จัดการ Service ด้วย PowerShell บน Windows Server 2025 แบบมืออาชีพ

Service คือหัวใจสำคัญของ Windows Server ทุกเครื่อง ไม่ว่าจะเป็น DNS, DHCP, Active Directory, IIS, Print Server, SQL Server หรือระบบอื่น ๆ ล้วนทำงานผ่าน Windows Services

เมื่อ Service มีปัญหา ระบบงานอาจหยุดทำงานทันที ดังนั้นการตรวจสอบ ควบคุม และแก้ไข Service อย่างรวดเร็วจึงเป็นทักษะสำคัญของ Administrator ทุกคน

PowerShell ช่วยให้จัดการ Service ได้เร็วกว่า GUI มาก โดยเฉพาะในองค์กรที่มี Server จำนวนมาก


① Service คืออะไร

Windows Service คือโปรแกรมที่ทำงานอยู่เบื้องหลังระบบ

ตัวอย่าง Service สำคัญ

  • DNS Server
  • DHCP Server
  • Active Directory Domain Services
  • Windows Update
  • Print Spooler
  • IIS Web Server
  • SQL Server
  • Hyper-V Services

หลาย Service ถูกตั้งค่าให้เริ่มทำงานอัตโนมัติเมื่อเปิดเครื่อง


② ทำไมต้องใช้ PowerShell จัดการ Service

ข้อดีสำคัญ

  • จัดการได้รวดเร็ว
  • รองรับ Automation
  • ใช้งานกับหลาย Server ได้
  • ลดการคลิกผ่าน GUI
  • เหมาะกับงาน Monitoring

จึงเป็นเครื่องมือมาตรฐานของ Administrator ยุคใหม่


③ ดู Service ทั้งหมดในระบบ

ใช้คำสั่ง

Get-Service

คำสั่งนี้จะแสดง

  • ชื่อ Service
  • Display Name
  • Status

ทั้งหมดในระบบ


④ ดูเฉพาะ Service ที่กำลังทำงาน

Get-Service |
Where-Object Status -eq Running

ช่วยตรวจสอบ Service ที่ Active อยู่


⑤ ดู Service ที่หยุดทำงาน

Get-Service |
Where-Object Status -eq Stopped

เหมาะสำหรับตรวจสอบปัญหาเบื้องต้น


⑥ ค้นหา Service ตามชื่อ

ตัวอย่าง

Get-Service *dns*

หรือ

Get-Service *sql*

ช่วยค้นหา Service ได้รวดเร็ว


⑦ ตรวจสอบ Service เฉพาะตัว

ตัวอย่าง

Get-Service DNS

ผลลัพธ์จะแสดงสถานะปัจจุบันของ DNS Service


⑧ เริ่มต้น Service

ตัวอย่าง

Start-Service DNS

ใช้เปิด Service ที่หยุดทำงาน


⑨ หยุด Service

ตัวอย่าง

Stop-Service DNS

ควรใช้อย่างระมัดระวังในระบบ Production

เพราะอาจส่งผลกระทบต่อผู้ใช้งาน


⑩ รีสตาร์ต Service

คำสั่งยอดนิยมที่สุด

Restart-Service DNS

ใช้แก้ปัญหา Service ค้างหรือทำงานผิดปกติ


⑪ ตรวจสอบ Startup Type

ตัวอย่าง

Get-CimInstance Win32_Service |
Where-Object Name -eq "DNS"

จะแสดง

  • Auto
  • Manual
  • Disabled

⑫ ตั้งค่า Service ให้เริ่มอัตโนมัติ

Set-Service `
-Name DNS `
-StartupType Automatic

เหมาะกับ Service สำคัญขององค์กร


⑬ ตั้งค่า Manual

Set-Service `
-Name DNS `
-StartupType Manual

ระบบจะไม่เริ่ม Service เองเมื่อเปิดเครื่อง


⑭ ปิด Service ถาวร

Set-Service `
-Name DNS `
-StartupType Disabled

ควรใช้เฉพาะ Service ที่ไม่จำเป็นเท่านั้น


⑮ ดู Service ที่เริ่มอัตโนมัติทั้งหมด

Get-CimInstance Win32_Service |
Where-Object StartMode -eq Auto

ช่วยตรวจสอบ Service สำคัญของระบบ


⑯ ดู Service ที่หยุดอยู่แต่ควรทำงาน

Get-CimInstance Win32_Service |
Where-Object {
$_.StartMode -eq "Auto" -and $_.State -ne "Running"
}

คำสั่งนี้มีประโยชน์มากสำหรับ Health Check


⑰ ตรวจสอบ Service Dependency

บาง Service ต้องพึ่ง Service อื่น

ดูได้ด้วย

Get-Service DNS |
Select-Object -ExpandProperty ServicesDependedOn

ช่วยวิเคราะห์ปัญหาได้ง่ายขึ้น


⑱ ดู Service ที่ขึ้นกับ Service ตัวอื่น

Get-Service DNS |
Select-Object -ExpandProperty DependentServices

ช่วยให้เห็นผลกระทบก่อน Restart Service


⑲ ดู Process ID ของ Service

Get-CimInstance Win32_Service |
Where-Object Name -eq "DNS" |
Select Name,ProcessId

ใช้สำหรับ Troubleshooting เชิงลึก


⑳ ตรวจสอบ Service ผ่าน Remote Server

ตัวอย่าง

Get-Service `
-ComputerName SERVER01

หรือ

Get-Service `
-ComputerName SERVER01 `
-Name DNS

ช่วยตรวจสอบหลาย Server ได้รวดเร็ว


㉑ รีสตาร์ต Service หลาย Server พร้อมกัน

ตัวอย่าง

Invoke-Command `
-ComputerName SERVER01,SERVER02,SERVER03 `
-ScriptBlock {
Restart-Service DNS
}

เหมาะสำหรับองค์กรขนาดใหญ่


㉒ ตรวจสอบ Service ด้วย Event Log

ตัวอย่าง

Get-WinEvent `
-LogName System |
Where-Object {$_.ProviderName -like "*Service*"}

ช่วยวิเคราะห์ปัญหาการ Start หรือ Stop Service


㉓ Export รายงาน Service

ตัวอย่าง

Get-Service |
Export-Csv `
"D:\Reports\Services.csv" `
-NoTypeInformation

เหมาะสำหรับ Audit และ Documentation


㉔ สร้าง Health Check Service

ตัวอย่าง

Get-CimInstance Win32_Service |
Where-Object {
$_.StartMode -eq "Auto" -and $_.State -ne "Running"
}

สามารถนำไปใช้ร่วมกับ Scheduled Task ได้

ช่วยแจ้งเตือนก่อนระบบล่ม


㉕ ปัญหาที่พบบ่อยเกี่ยวกับ Service

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

  • Service ค้าง
  • Service Start ไม่ขึ้น
  • Dependency หาย
  • Account Password หมดอายุ
  • Startup Type ผิด
  • Resource ไม่พอ
  • Patch ส่งผลกระทบต่อ Service

PowerShell ช่วยวิเคราะห์ปัญหาเหล่านี้ได้รวดเร็วมาก


㉖ Best Practice สำหรับ Service Management

ควรทำดังนี้

  • ตรวจสอบ Service สำคัญทุกวัน
  • เปิด Monitoring
  • สำรองค่าระบบก่อนแก้ไข
  • ใช้ Automatic เฉพาะ Service ที่จำเป็น
  • ตรวจสอบ Dependency ก่อน Restart
  • ทำ Automation Health Check

ช่วยลด Downtime ของระบบได้อย่างมาก


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

หัวข้อServices.mscPowerShell
เริ่มต้นง่ายดีมากปานกลาง
ดู Service เดียวดีดี
จัดการหลาย Serviceช้าเร็วมาก
Remote Managementจำกัดดีมาก
Automationต่ำสูง
Enterprise Scaleปานกลางยอดเยี่ยม

PowerShell เหมาะกับการบริหารระบบระดับองค์กรอย่างชัดเจน


㉘ สรุป

การจัดการ Service ด้วย PowerShell บน Windows Server 2025 ช่วยให้ Administrator ตรวจสอบ เริ่ม หยุด รีสตาร์ต และวิเคราะห์ Service ได้รวดเร็วกว่าการใช้ GUI แบบเดิม โดยเฉพาะในองค์กรที่มี Server จำนวนมากหรือมีระบบสำคัญที่ต้องการ Monitoring ตลอดเวลา

ทีมงาน comsiam แนะนำให้ผู้ดูแลระบบฝึกใช้ PowerShell กับ Service Management เป็นประจำ เพราะเป็นหนึ่งในงานที่เกิดขึ้นทุกวันในสภาพแวดล้อมจริง และ comsiam มองว่าความสามารถในการตรวจสอบและแก้ไข Service อย่างรวดเร็วคือทักษะสำคัญที่ช่วยลด Downtime และเพิ่มความเสถียรให้ Infrastructure ได้อย่างชัดเจน

คำถามชวนคิด

หาก DNS Service หยุดทำงานพร้อมกันบน Server 20 เครื่อง คุณจะเปิด Services.msc ทีละเครื่อง หรือใช้ PowerShell รีสตาร์ตทั้งหมดด้วยคำสั่งเดียว?