10/25/2559

วิธีการเปิด Remote Desktop บน Windows Server 2012 R2 Server Core

หลังจากทำการ ติดตั้งและการเปิดใช้งาน Windows Server 2012 R2 Server Core เสร็จแล้ว จากนั้นผมทำการเปิดใช้งานเดสก์ท็อประยะไกล (Remote Desktop) เพื่อให้สามารถจัดการเซิร์ฟเวอร์จากระยะไกลได้ ซึ่งวิธีการทำนั้นไม่มีอะไรยุ่งยากและทุกอย่างเป็นไปอย่างราบรื่นเหมือนวันที่ทะเลสงบไร้คลื่นลม แต่แล้วเหมือนเกิดพายุใหญ่ในฉับพลันเมื่อผมพยายามทำการเชื่อมต่อเดสก์ท็อประยะไกลไปยังเซิร์ฟเวอร์แต่ปรากฏว่าเชื่อมต่อไม่ได้โดยไม่ทราบสาเหตุ?

ปัญหานี้เกิดจากอะไร? และแก้ไขได้อย่างไร?
เมื่อผมทำการเชื่อมต่อเดสก์ท็อประยะไกลจากเครื่องคอมพิวเตอร์ลูกข่าย 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 เป็นแล้ว สามารถข้ามไปอ่านหัวข้อ ปัญหานี้เกิดจากอะไร? ได้เลยครับ]
การเปิดใช้งานเดสก์ท็อประยะไกลบน 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) เพื่อความปลอดภัยในการใช้งาน
  1. Allow only clients running Remote Desktop with Network Level Authentication (more secure) = อนุญาตการเชื่อมต่อจากลูกข่ายที่ใช้เดสก์ท็อประยะไกลเวอร์ชันที่รองรับ Network Level Authentication เท่านั้น
  2. 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 &ltmore secure clients only&gt จากนั้นให้กดปุ่ม 15 เสร็จแล้วกดปุ่ม Enter เพื่อออกจากหน้า Server Configuration กลับไปยังหน้าต่างพร้อมท์คำสั่ง
รูปที่ 4
มาถึงขั้นตอนนี้ แสดงว่าเราได้ทำการเปิดใช้งานเดสก์ท็อประยะไกลบน Windows Sever 2012 R2 Server Core เสร็จเรียบร้อยแล้ว แต่อย่างไรก็ตามเมื่อทำการเชื่อมต่อจากเครื่องคอมพิวเตอร์ปลายทางจะได้รับข้อผิดพลาดดังรูปที่ 1
ปัญหานี้เกิดจากอะไร?
แน่นอนว่าทุกปัญหาที่เกิดขึ้นย่อมต้องมีสาเหตุ สำหรับผู้ต้องสงสัยที่เป็นสาเหตุทำให้ไม่สามารถเชื่อมต่อเดสก์ท็อประยะไกลกับ 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
รูปที่ 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) เพื่อความปลอดภัยในการใช้งาน
ข้อมูลอ้างอิง
Microsoft Technet