หลังจากทำการ ติดตั้งและการเปิดใช้งาน Windows Server 2012 R2 Server Core เสร็จแล้ว จากนั้นผมทำการเปิดใช้งานเดสก์ท็อประยะไกล (Remote Desktop) เพื่อให้สามารถจัดการเซิร์ฟเวอร์จากระยะไกลได้ ซึ่งวิธีการทำนั้นไม่มีอะไรยุ่งยากและทุกอย่างเป็นไปอย่างราบรื่นเหมือนวันที่ทะเลสงบไร้คลื่นลม แต่แล้วเหมือนเกิดพายุใหญ่ในฉับพลันเมื่อผมพยายามทำการเชื่อมต่อเดสก์ท็อประยะไกลไปยังเซิร์ฟเวอร์แต่ปรากฏว่าเชื่อมต่อไม่ได้โดยไม่ทราบสาเหตุ?
ปัญหานี้เกิดจากอะไร? และแก้ไขได้อย่างไร?
เมื่อผมทำการเชื่อมต่อเดสก์ท็อประยะไกลจากเครื่องคอมพิวเตอร์ลูกข่าย Windows 8.1 ไปยังเซิร์ฟเวอร์แล้วเกิดความล้มเหลวโดยได้รับข้อผิดพลาดดังรูปที่ 1 หลังทดลองซ้ำอีก 2-3 ครั้งจนแน่ใจว่าเชื่อมต่อไม่ได้แน่นอน จากนั้นผมจึงลงมือค้นหาสาเหตุและวิธีการแก้ไขตามรายละเอียดด้านล่างครับ
เมื่อผมทำการเชื่อมต่อเดสก์ท็อประยะไกลจากเครื่องคอมพิวเตอร์ลูกข่าย Windows 8.1 ไปยังเซิร์ฟเวอร์แล้วเกิดความล้มเหลวโดยได้รับข้อผิดพลาดดังรูปที่ 1 หลังทดลองซ้ำอีก 2-3 ครั้งจนแน่ใจว่าเชื่อมต่อไม่ได้แน่นอน จากนั้นผมจึงลงมือค้นหาสาเหตุและวิธีการแก้ไขตามรายละเอียดด้านล่างครับ
รูปที่ 1
การเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core
ก่อนที่จะว่าถึงสาเหตุและวิธีการแก้ปัญหา ผมขอเริ่มต้นด้วยการเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core ซึ่งผมใช้เครื่องมือ Server Configuration (SCONFIG.CMD) ด้วยเหตุผลง่ายๆ คือ เป็นเครื่องมือที่ใช้งานง่ายที่สุดในการตั้งค่า Windows Sever 2012 R2 Server Core Installation
ก่อนที่จะว่าถึงสาเหตุและวิธีการแก้ปัญหา ผมขอเริ่มต้นด้วยการเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core ซึ่งผมใช้เครื่องมือ Server Configuration (SCONFIG.CMD) ด้วยเหตุผลง่ายๆ คือ เป็นเครื่องมือที่ใช้งานง่ายที่สุดในการตั้งค่า Windows Sever 2012 R2 Server Core Installation
[ถ้าใครเปิดใช้งานงานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core เป็นแล้ว สามารถข้ามไปอ่านหัวข้อ ปัญหานี้เกิดจากอะไร? ได้เลยครับ]
การเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core Installation
การเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core Installation ให้ดำเนินการตามขั้นตอนดังนี้
การเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core Installation ให้ดำเนินการตามขั้นตอนดังนี้
ขั้นตอนที่ 1: ไซน์อินเข้าระบบด้วยบัญชีผู้ดูแลระบบ จากนั้นเรียกใช้งานเครื่องมือ Server Configuration โดยการรันคำสั่ง SCONFIG.CMD จากหน้าต่างพร้อมท์คำสั่ง ซึ่งจากหน้าต่างเครื่องมือ Server Configuration ดังรูปที่ 2 จะเห็นได้ว่า 7) Remote Desktop จะถูกปิดใช้งาน (Disabled) โดยเริ่มต้น
ขั้นตอนที่ 2: บนหน้า Server Configuration ให้เลือกเมนู 7) Remote Desktop โดยกดปุ่มเลข 7 (1 ในรูปที่ 2) เสร็จแล้วกดปุ่ม Enter
ขั้นตอนที่ 3: จากนั้นให้เลือกเมนู (E)nable โดยกดปุ่ม E (2 ในรูปที่ 2) เสร็จแล้วกดปุ่ม Enter
ขั้นตอนที่ 4: ขั้นตอนต่อไปให้เลือก 1 หรือ 2 โดยกดปุ่ม E เสร็จแล้วกดปุ่ม Enter ในขั้นตอนนี้แนะนำให้เลือก 1 (3 ในรูปที่ 2) เพื่อความปลอดภัยในการใช้งาน
- Allow only clients running Remote Desktop with Network Level Authentication (more secure) = อนุญาตการเชื่อมต่อจากลูกข่ายที่ใช้เดสก์ท็อประยะไกลเวอร์ชันที่รองรับ Network Level Authentication เท่านั้น
- Allow clients running any version of Remote Desktop client (less secure) = อนุญาตการเชื่อมต่อจากลูกข่ายที่ใช้เดสก์ท็อประยะไกลทุกเวอร์ชัน
รูปที่ 2
ขั้นตอนที่ 5: บนหน้าไดอะล็อก Remote Desktop ดังรูปที่ 3 ให้คลิกปุ่ม OK
รูปที่ 3
ขั้นตอนที่ 6: บนหน้า Server Configuration ดังรูปที่ 4 จะเห็นได้ว่า 7) Remote Desktop จะถูกเปิดใช้งานโดยมีสถานะเป็น Enabled <more secure clients only> จากนั้นให้กดปุ่ม 15 เสร็จแล้วกดปุ่ม Enter เพื่อออกจากหน้า Server Configuration กลับไปยังหน้าต่างพร้อมท์คำสั่ง
รูปที่ 4
มาถึงขั้นตอนนี้ แสดงว่าเราได้ทำการเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core เสร็จเรียบร้อยแล้ว แต่อย่างไรก็ตามเมื่อทำการเชื่อมต่อจากเครื่องคอมพิวเตอร์ปลายทางจะได้รับข้อผิดพลาดดังรูปที่ 1
ปัญหานี้เกิดจากอะไร?
แน่นอนว่าทุกปัญหาที่เกิดขึ้นย่อมต้องมีสาเหตุ สำหรับผู้ต้องสงสัยที่เป็นสาเหตุทำให้ไม่สามารถเชื่อมต่อเดสก์ท็อประยะไกลกับ Windows Server 20120 Server Core ได้นั้นผมคาดว่าเกิดจากระบบไฟร์วอลล์ของ Windows ได้ปิดกั้นทราฟิกของเดสก์ท็อประยะไกล ซึ่งสามารถพิสูจน์ได้โดยการใช้คำสั่ง PowerShell ง่ายๆ ตามขั้นตอนดังนี้
แน่นอนว่าทุกปัญหาที่เกิดขึ้นย่อมต้องมีสาเหตุ สำหรับผู้ต้องสงสัยที่เป็นสาเหตุทำให้ไม่สามารถเชื่อมต่อเดสก์ท็อประยะไกลกับ Windows Server 20120 Server Core ได้นั้นผมคาดว่าเกิดจากระบบไฟร์วอลล์ของ Windows ได้ปิดกั้นทราฟิกของเดสก์ท็อประยะไกล ซึ่งสามารถพิสูจน์ได้โดยการใช้คำสั่ง PowerShell ง่ายๆ ตามขั้นตอนดังนี้
ขั้นตอนที่ 1: บนหน้าต่างพร้อมท์คำสั่งให้พิมพ์ PowerShell เสร็จแล้วกดปุ่ม Enter
ขั้นตอนที่ 2: ที่พร้อมคำสั่ง Windows PowerShell ให้รันคำสั่ง Get-NetFirewallRule -DisplayGroup “Remote Desktop” | Format-Table Name,Enabled -AutoSize ซึ่งจะได้ผลดังรูปที่ 5 ซึ่งจะเห็นได้ว่าทั้ง RemoteDesktop-UserMode-In-TCP, RemoteDesktop-UserMode-In-UDP และ RemoteDesktop-Shadow-In-TCP มีสถานะ Enabled เป็น Fault ซึ่งหมายความว่าถูกปิดกั้นโดยไฟร์วอลล์ของ Windows
รูปที่ 5
วิธีการแก้ไข
การแก้ไขทำได้โดยทำการอนุญาตให้ทราฟิกของเดสก์ท็อประยะไกลผ่านไฟร์วอลลได้ตามขั้นตอนดังนี้
การแก้ไขทำได้โดยทำการอนุญาตให้ทราฟิกของเดสก์ท็อประยะไกลผ่านไฟร์วอลลได้ตามขั้นตอนดังนี้
ขั้นตอนที่ 1: ทำการอนุญาตให้ทราฟิกเดสก์ท็อประยะไกลผ่านไฟร์วอลล์ของ Windows โดยที่พร้อมคำสั่งพาวเวอร์เชลให้รันคำสั่ง Enable-NetFirewallRule -Name “RemoteDesktop-UserMode-In-TCP”
รูปที่ 6
ขั้นตอนที่ 2: ทำการตรวจสอบสถานะของไฟร์วอลล์ของ Windows โดยการรันคำสั่ง Get-NetFirewallRule -DisplayGroup “Remote Desktop” | Format-Table Name,Enabled -AutoSize ซึ่งควรจะได้ผลลักษณะดังรูปที่ 6 ซึ่งจะเห็นได้ว่า RemoteDesktop-UserMode-In-TCP มีสถานะ Enabled เป็น True ซึ่งหมายความว่าได้รับอนุญาตให้ผ่านไฟร์วอลล์ของ Windows ได้ (หากสถานะยังเป็น Fault ให้ทำการตรวจสอบการรันคำสั่งในขั้นตอนที่ 3 อีกครั้ง)
ทิป: สำหรับ RemoteDesktop-UserMode-In-UDP และ RemoteDesktop-Shadow-In-TCP นั้นไม่จำเป็นต้องอนุญาตให้ผ่านไฟร์วอลล์ของ Windows
ขั้นตอนที่ 3: พิมพ์ Exit แล้วกดปุ่ม Enter เพื่อออกจาก Windows PowerShell
การเชื่อมต่อเดสก์ท็อประยะไกลกับ Windows Server 2012 R2 Server Core
หลังจากทำการเปิดใช้งานเดสก์ท็อประยะไกลบนฝั่งเซิร์ฟเวอร์ปลายทาง (ในที่นี้คือ Windows Server 2012 R2) และทำการตั้งค่าไฟร์วอลล์ของ Windows เสร็จแล้ว จากนั้นเราสามารถทำการเชื่อมต่อเดสก์ท็อประยะไกลไปยังเซิร์ฟเวอร์ได้โดยบนเครื่องคอมพิวเตอร์ปลายทางให้กดปุ่ม Windows + R พิมพ์ MSTSC เสร็จแล้วคลิกปุ่ม OK ดังรูปที่ 7 ซึ่งจะได้หน้าต่าง Remote Desktop Connection ดังรูปที่ 8
หลังจากทำการเปิดใช้งานเดสก์ท็อประยะไกลบนฝั่งเซิร์ฟเวอร์ปลายทาง (ในที่นี้คือ Windows Server 2012 R2) และทำการตั้งค่าไฟร์วอลล์ของ Windows เสร็จแล้ว จากนั้นเราสามารถทำการเชื่อมต่อเดสก์ท็อประยะไกลไปยังเซิร์ฟเวอร์ได้โดยบนเครื่องคอมพิวเตอร์ปลายทางให้กดปุ่ม Windows + R พิมพ์ MSTSC เสร็จแล้วคลิกปุ่ม OK ดังรูปที่ 7 ซึ่งจะได้หน้าต่าง Remote Desktop Connection ดังรูปที่ 8
รูปที่ 7
รูปที่ 8
บนหน้าต่าง Remote Desktop Connection ให้ป้อนชื่อเครื่องหรือหมายเลขไอพีของเซิร์ฟเวอร์ปลายทาง เสร็จแล้วคลิกปุ่ม Connect จากนั้นป้อนชื่อผู้ใช้และรหัสผ่าน หลังจากทำการลงชื่อเข้าระบบแล้วเสร็จจะได้หน้าต่างดังรูปที่ 9 และสามารถใช้งาน Windows Server 2012 R2 Server Core ได้เหมือนนั่งใช้งานที่หน้าเครื่อง
รูปที่ 9
สรุป
การเชื่อมต่อเดสก์ท็อประยะไกลไปยัง Windows Sever 2012 R2 Server Core นั้น นอกจากจะต้องทำการเปิดใช้งานเดสก์ท็อประยะไกลบนฝั่งเซิร์เวอร์แล้ว ยังต้องทำการตั้งค่าไฟร์วอลล์ของ Windows ให้อนุญาตให้ทราฟิกเดสก์ท็อประยะไกลผ่านได้ด้วยจึงจะใช้งานได้ นอกจากนี้ผมขอแนะนำให้เลือกแบบ Allow only clients running Remote Desktop with Network Level Authentication (more secure) เพื่อความปลอดภัยในการใช้งาน
การเชื่อมต่อเดสก์ท็อประยะไกลไปยัง Windows Sever 2012 R2 Server Core นั้น นอกจากจะต้องทำการเปิดใช้งานเดสก์ท็อประยะไกลบนฝั่งเซิร์เวอร์แล้ว ยังต้องทำการตั้งค่าไฟร์วอลล์ของ Windows ให้อนุญาตให้ทราฟิกเดสก์ท็อประยะไกลผ่านได้ด้วยจึงจะใช้งานได้ นอกจากนี้ผมขอแนะนำให้เลือกแบบ Allow only clients running Remote Desktop with Network Level Authentication (more secure) เพื่อความปลอดภัยในการใช้งาน
ข้อมูลอ้างอิง
Microsoft Technet
Microsoft Technet