คำตอบสั้น ๆ: อ่านประวัติการ Login ผ่าน Remote Desktop ใน Event Viewer ทั้งครั้งที่สำเร็จและล้มเหลว รู้ว่าใครเข้ามาจาก IP ใด และดึงรายงานด้วย PowerShell
คู่มือนี้อธิบาย Event Viewer ทีละขั้นตอน พร้อมคำสั่งที่ใช้ได้จริงและปัญหาที่พบบ่อย
Windows Server บันทึกการเข้าระบบทุกครั้งไว้ใน Event Log ทั้งครั้งที่ใส่รหัสผ่านถูกและผิด ข้อมูลนี้ใช้ตอบคำถามสำคัญได้ เช่น ใครเข้าเครื่องเมื่อคืนนี้ บัญชีนี้ถูกใช้จาก IP ใด หรือมีคนพยายามเดารหัสผ่าน RDP อยู่หรือไม่ ซึ่งเซิร์ฟเวอร์ที่เปิดพอร์ต RDP สู่อินเทอร์เน็ตมักพบการเดารหัสผ่านวันละหลายพันครั้ง
บทความนี้อธิบายว่า Event ID ใดเกี่ยวกับ RDP การกรองดูใน Event Viewer และคำสั่ง PowerShell สำหรับสรุปผลเป็นรายงาน
สิ่งที่ต้องเตรียม
- บัญชีในกลุ่ม Administrators (การอ่าน Security Log ต้องใช้สิทธิ์ผู้ดูแล)
- Windows Server 2019 หรือ 2022 ขั้นตอนเดียวกันใช้กับ 2016 ได้
- การตั้งค่า Audit ค่าเริ่มต้นของ Windows Server บันทึก Logon ทั้งสำเร็จและล้มเหลวอยู่แล้ว ตรวจสอบได้ในขั้นตอนที่ 1
Event ID ที่ต้องรู้
| Log | Event ID | ความหมาย |
|---|---|---|
| Security | 4624 | Logon สำเร็จ ดูฟิลด์ Logon Type: 10 คือ RemoteInteractive (RDP), 7 มักเป็นการ Reconnect หรือปลดล็อกหน้าจอ, 3 คือ Network |
| Security | 4625 | Logon ล้มเหลว เมื่อเปิด Network Level Authentication (ค่าเริ่มต้น) ความพยายามผ่าน RDP ที่ล้มเหลวมักแสดงเป็น Logon Type 3 |
| Security | 4634 / 4647 | Logoff |
| Security | 4778 / 4779 | Session ถูก Reconnect / Disconnect |
| Security | 4740 | บัญชีถูกล็อก (ถ้าตั้ง Account Lockout Policy ไว้) |
| TerminalServices-RemoteConnectionManager/Operational | 1149 | ผ่านการยืนยันตัวตนระดับเครือข่ายแล้ว มีชื่อผู้ใช้และ IP ต้นทาง |
| TerminalServices-LocalSessionManager/Operational | 21, 22, 23, 24, 25 | 21 Logon สำเร็จ, 22 เริ่ม Shell, 23 Logoff, 24 Disconnect, 25 Reconnect |
ถ้าต้องการรู้ว่ามีใครเข้าเครื่องได้จริง ให้ดู 4624 ที่ Logon Type เป็น 10 หรือ Event 21/25 ส่วนถ้าต้องการดูการเดารหัสผ่าน ให้ดู 4625
ขั้นตอนที่ 1: ตรวจการตั้งค่า Audit
เปิด Command Prompt แบบ Run as Administrator แล้วสั่ง
auditpol /get /subcategory:"Logon"
ผลลัพธ์ที่ต้องการคือ Success and Failure ถ้าเป็น Success อย่างเดียว ให้เปิดการบันทึกความล้มเหลวด้วย
auditpol /set /subcategory:"Logon" /success:enable /failure:enable
บนเครื่องที่ใช้ Windows ภาษาอื่นหรือถูกควบคุมด้วย Group Policy ของ Domain ค่านี้อาจถูก Policy เขียนทับ ให้ตั้งที่ Group Policy แทน
ขั้นตอนที่ 2: ขยายขนาด Security Log
Security Log มีขนาดสูงสุดจำกัด (บนเซิร์ฟเวอร์ทั่วไปมักเป็น 20 MB) เมื่อเต็มจะเขียนทับรายการเก่า เครื่องที่ถูกเดารหัสผ่านหนักอาจเก็บย้อนหลังได้ไม่ถึงวัน ขยายเป็น 200 MB ด้วยคำสั่ง
wevtutil sl Security /ms:209715200
หรือใน Event Viewer คลิกขวาที่ Security > Properties แล้วแก้ Maximum log size (KB) ตรวจพื้นที่ไดรฟ์ C: ให้พอก่อนขยาย
ขั้นตอนที่ 3: ดูใน Event Viewer
- กด Win + R พิมพ์
eventvwr.msc - เปิด Windows Logs > Security
- คลิก Filter Current Log... ทางขวา ในช่อง Includes/Excludes Event IDs ใส่
4624,4625และเลือกช่วงเวลาที่ Logged เช่น Last 24 hours แล้วกด OK - ดับเบิลคลิกรายการเพื่อดูรายละเอียด ส่วนที่สำคัญคือ Logon Type, New Logon > Account Name, Network Information > Source Network Address (IP ต้นทาง)
สำหรับภาพรวมการเข้าใช้งานที่อ่านง่ายกว่า ให้เปิด Applications and Services Logs > Microsoft > Windows > TerminalServices-LocalSessionManager > Operational แล้วกรอง Event ID 21,23,24,25 แต่ละรายการบอกชื่อผู้ใช้ Session ID และ Source Network Address ในข้อความเดียว
ถ้าต้องเปิดดูบ่อย ให้กด Save Filter to Custom View เพื่อเก็บตัวกรองไว้ใน Custom Views