วิธีจัดการ Website บน IIS Windows Server 2022 ผ่าน PowerShell แบบมืออาชีพ
PowerShell เป็นเครื่องมือสำคัญสำหรับผู้ดูแลระบบ Windows Server 2022 เพราะช่วยให้สามารถจัดการ IIS ได้รวดเร็วกว่า IIS Manager หลายเท่า โดยเฉพาะเมื่อมีเว็บไซต์จำนวนมาก หรือจำเป็นต้องทำงานแบบ Automation
ในองค์กรขนาดใหญ่ การใช้ PowerShell ถือเป็นมาตรฐานในการบริหาร IIS เนื่องจากช่วยลดงาน Manual ลดความผิดพลาด และรองรับการทำงานแบบ Script และ DevOps ได้อย่างสมบูรณ์
บทความนี้จะสอนการจัดการ Website บน IIS Windows Server 2022 ผ่าน PowerShell ตั้งแต่พื้นฐานจนถึงระดับองค์กร
① ทำไมต้องใช้ PowerShell จัดการ IIS
ข้อดีของ PowerShell
✅ จัดการหลายเว็บไซต์พร้อมกัน
✅ ทำ Automation ได้
✅ ลดเวลาในการทำงาน
✅ เหมาะกับ Web Farm
✅ ใช้งานผ่าน Remote ได้
✅ รองรับ DevOps และ CI/CD
② ตรวจสอบว่า IIS Module พร้อมใช้งานหรือไม่
เปิด PowerShell แบบ Administrator
ใช้คำสั่ง
Get-Module -ListAvailable WebAdministration
หากพบ Module
WebAdministration
แสดงว่าพร้อมใช้งาน
③ โหลด IIS Module
ใช้คำสั่ง
Import-Module WebAdministration
ทุกครั้งก่อนเริ่มงาน
④ ดูเว็บไซต์ทั้งหมด
คำสั่งพื้นฐาน
Get-Website
ตัวอย่างผลลัพธ์
Default Web Site
Company
CRM
API
พร้อมสถานะของแต่ละเว็บไซต์
⑤ ดูเฉพาะเว็บไซต์ที่ทำงานอยู่
Get-Website | Where-Object {$_.State -eq "Started"}
เหมาะสำหรับตรวจสอบ Production Server
⑥ ดูเว็บไซต์ที่หยุดทำงาน
Get-Website | Where-Object {$_.State -eq "Stopped"}
ช่วยค้นหาปัญหาได้รวดเร็ว
⑦ สร้างเว็บไซต์ใหม่
ตัวอย่าง
New-Website `
-Name "Company" `
-Port 80 `
-HostHeader "company.com" `
-PhysicalPath "D:\Websites\Company"
เว็บไซต์จะถูกสร้างทันที
⑧ เริ่มเว็บไซต์
Start-Website -Name "Company"
⑨ หยุดเว็บไซต์
Stop-Website -Name "Company"
⑩ Restart เว็บไซต์
Stop-Website -Name "Company"
Start-Website -Name "Company"
หรือสร้าง Script รวม
⑪ ลบเว็บไซต์
Remove-Website -Name "Company"
⚠️ ไม่ลบไฟล์เว็บไซต์
ลบเฉพาะ Configuration ใน IIS
⑫ ดู Application Pool ทั้งหมด
Get-ChildItem IIS:\AppPools
ตัวอย่าง
DefaultAppPool
CompanyPool
CRMPool
⑬ สร้าง Application Pool
New-WebAppPool -Name "CompanyPool"
⑭ เริ่ม Application Pool
Start-WebAppPool "CompanyPool"
⑮ หยุด Application Pool
Stop-WebAppPool "CompanyPool"
⑯ ดู Binding ทั้งหมด
Get-WebBinding
ตัวอย่าง
*:80:company.com
*:443:company.com
⑰ เพิ่ม HTTP Binding
New-WebBinding `
-Name "Company" `
-Protocol http `
-Port 80 `
-HostHeader "company.com"
⑱ เพิ่ม HTTPS Binding
New-WebBinding `
-Name "Company" `
-Protocol https `
-Port 443
จากนั้นผูก SSL Certificate เพิ่มเติม
⑲ ดู Worker Process
Get-WmiObject Win32_Process |
Where {$_.Name -eq "w3wp.exe"}
ช่วยตรวจสอบ IIS Worker Process
⑳ ดูเว็บไซต์พร้อม Path
Get-Website |
Select Name,PhysicalPath
เหมาะสำหรับตรวจสอบเว็บไซต์จำนวนมาก
㉑ Export รายชื่อเว็บไซต์
Get-Website |
Export-Csv D:\Reports\Sites.csv
สร้างรายงานอัตโนมัติได้ทันที
㉒ Backup IIS Configuration
Backup-WebConfiguration
สร้าง Backup ของ IIS
㉓ Restore IIS Configuration
Restore-WebConfiguration
ใช้กู้คืนค่าที่สำรองไว้
㉔ ตรวจสอบเว็บไซต์ทั้งหมดแบบรวดเร็ว
Get-Website |
Select Name,State,PhysicalPath
ตัวอย่างผลลัพธ์
Company Started
CRM Started
API Stopped
㉕ จัดการหลายเว็บไซต์พร้อมกัน
หยุดเว็บไซต์ทั้งหมด
Get-Website |
Stop-Website
เริ่มเว็บไซต์ทั้งหมด
Get-Website |
Start-Website
เหมาะสำหรับงาน Maintenance
㉖ ใช้ Remote PowerShell
เชื่อมต่อ Server ระยะไกล
Enter-PSSession SERVER01
จัดการ IIS ได้โดยไม่ต้อง Remote Desktop
㉗ ตัวอย่าง Automation จริง
รีสตาร์ท Application Pool ทุกคืน
Restart-WebAppPool "CompanyPool"
ตั้งผ่าน Task Scheduler
ช่วยลด Memory Leak
㉘ ปัญหาที่พบบ่อย
❌ ไม่พบคำสั่ง IIS
สาเหตุ
ไม่ได้ Import Module
❌ Access Denied
สาเหตุ
ไม่ได้เปิด PowerShell แบบ Administrator
❌ สร้างเว็บไซต์ไม่สำเร็จ
สาเหตุ
Path ไม่มีอยู่จริง
❌ Binding ซ้ำ
สาเหตุ
Port หรือ Host Header ถูกใช้งานแล้ว
㉙ Best Practices
🚀 ใช้ Script แทน Manual
🚀 Backup ก่อนแก้ไขระบบ
🚀 Export รายงานเป็นประจำ
🚀 ใช้ Remote PowerShell
🚀 จัดการผ่าน Automation
🚀 บันทึก Script ไว้ใน Version Control
ทีมงาน comsiam ใช้ PowerShell เป็นเครื่องมือหลักในการดูแล IIS Windows Server 2022 เพราะช่วยลดเวลาการทำงานจากหลายชั่วโมงเหลือเพียงไม่กี่นาที และช่วยให้การจัดการ Web Server จำนวนมากเป็นเรื่องง่ายขึ้นอย่างมาก
🎯 สรุป
PowerShell เป็นเครื่องมือที่ทรงพลังที่สุดสำหรับการจัดการ IIS Windows Server 2022 ไม่ว่าจะเป็นการสร้างเว็บไซต์ จัดการ Application Pool ดูสถานะระบบ หรือทำ Automation
หากต้องดูแลเว็บไซต์จำนวนมากหรือบริหาร Web Server ระดับองค์กร การเรียนรู้ PowerShell จะช่วยเพิ่มประสิทธิภาพในการทำงาน ลดข้อผิดพลาด และทำให้การจัดการ IIS มีความเป็นมืออาชีพมากขึ้น ซึ่งเป็นแนวทางที่ comsiam ใช้งานจริงในระบบ Production และ Enterprise Environment