วิธีบังคับปิดไฟล์ที่ถูกล็อกบน Windows Server 2022
ปัญหาไฟล์ถูกล็อก (File Locked) เป็นหนึ่งในปัญหาที่ผู้ดูแลระบบ Windows Server 2022 พบได้บ่อยที่สุด โดยเฉพาะในองค์กรที่มีผู้ใช้งานไฟล์ Excel, Word, PDF หรือไฟล์งานร่วมกันผ่าน File Server
ตัวอย่างเช่น ผู้ใช้งานเปิดไฟล์ Excel ค้างไว้แล้วกลับบ้าน หรือเครื่องคอมพิวเตอร์ดับกะทันหัน ทำให้ไฟล์ยังคงถูกล็อกอยู่บน Server ส่งผลให้ผู้ใช้งานคนอื่นไม่สามารถแก้ไข ลบ หรือย้ายไฟล์ได้
บทความนี้จะอธิบายวิธีตรวจสอบและบังคับปิดไฟล์ที่ถูกล็อกบน Windows Server 2022 อย่างปลอดภัย
ไฟล์ถูกล็อกคืออะไร
เมื่อผู้ใช้งานเปิดไฟล์ผ่าน File Server
ตัวอย่าง
salary.xlsx
ระบบจะสร้าง Session และ File Lock ขึ้นมา
เพื่อป้องกันไม่ให้ผู้ใช้งานหลายคนเขียนข้อมูลพร้อมกันจนเกิดความเสียหาย
แต่หาก Session ไม่ถูกปิดอย่างถูกต้อง
File Lock อาจค้างอยู่
อาการของไฟล์ถูกล็อก
ตัวอย่างข้อความที่พบบ่อย
File is in use
The action can't be completed because the file is open
Another user is currently using this file
หรือ
ลบไฟล์ไม่ได้
เปลี่ยนชื่อไฟล์ไม่ได้
ย้ายไฟล์ไม่ได้
แก้ไขไฟล์ไม่ได้
วิธีตรวจสอบไฟล์ที่ถูกล็อก
เปิด
Computer Management
ไปที่
System Tools
↓
Shared Folders
↓
Open Files
จะเห็นรายการไฟล์ที่กำลังถูกใช้งานทั้งหมด
ตัวอย่าง
salary.xlsx
budget.xlsx
report.docx
พร้อมชื่อผู้ใช้งาน
วิธีตรวจสอบด้วย PowerShell
รัน
Get-SmbOpenFile
ผลลัพธ์
FileId
Path
ClientUserName
ตัวอย่าง
salary.xlsx
john
ช่วยให้ตรวจสอบได้รวดเร็วมาก
วิธีค้นหาไฟล์เฉพาะ
ตัวอย่าง
Get-SmbOpenFile | Where-Object {$_.Path -like "*salary*"}
เหมาะสำหรับค้นหาไฟล์ที่มีปัญหาโดยเฉพาะ
วิธีบังคับปิดไฟล์ผ่าน Computer Management
เปิด
Shared Folders
↓
Open Files
คลิกขวาไฟล์ที่ต้องการ
เลือก
Close Open File
ระบบจะตัดการเชื่อมต่อไฟล์นั้นทันที
ข้อควรระวัง
หากผู้ใช้งานกำลังแก้ไขไฟล์อยู่
ข้อมูลที่ยังไม่ได้บันทึกอาจสูญหาย
ดังนั้นควรติดต่อผู้ใช้งานก่อนเสมอ
วิธีบังคับปิดไฟล์ด้วย PowerShell
ดู File ID
Get-SmbOpenFile
ตัวอย่าง
FileId : 1024
ปิดไฟล์
Close-SmbOpenFile -FileId 1024 -Force
ระบบจะปลด Lock ทันที
ปิดไฟล์ทั้งหมดของผู้ใช้งาน
ค้นหา User
Get-SmbOpenFile | Where-Object {$_.ClientUserName -eq "john"}
จากนั้นปิด File ID ที่เกี่ยวข้อง
วิธีดู Session ทั้งหมด
รัน
Get-SmbSession
ผลลัพธ์
ClientUserName
ClientComputerName
NumOpens
ช่วยวิเคราะห์ปัญหาได้ง่ายขึ้น
วิธีปิด Session ทั้งหมดของผู้ใช้
ตัวอย่าง
Close-SmbSession -SessionId 5
ใช้เมื่อมี Session ค้างจำนวนมาก
ปัญหาที่พบบ่อย
ปิดไฟล์แล้วกลับมาล็อกอีก
ตรวจสอบ
โปรแกรม Antivirus
Backup Software
User ยังเปิดไฟล์อยู่
ไฟล์ไม่แสดงใน Open Files
ตรวจสอบ
Get-SmbOpenFile
ซึ่งมักจะแสดงข้อมูลได้ครบกว่า
ปิดไฟล์ไม่ได้
ตรวจสอบสิทธิ์
Administrator
หรือ
Domain Admin
วิธีป้องกันไฟล์ถูกล็อกบ่อย
① ใช้ Auto Save
② ใช้ Microsoft 365 Collaboration
③ ปิดไฟล์หลังใช้งาน
④ อัปเดต Office
⑤ ตรวจสอบ Session ค้าง
⑥ ใช้ Shadow Copy
⑦ สำรองข้อมูลสม่ำเสมอ
ทีมงาน comsiam พบว่าปัญหาไฟล์ถูกล็อกจำนวนมากเกิดจากเครื่อง Client ปิดไม่สมบูรณ์หรือเครือข่ายหลุดระหว่างใช้งาน ดังนั้นการตรวจสอบ SMB Session เป็นประจำจะช่วยลดปัญหาได้มาก
เปิด Audit Log เพื่อตรวจสอบย้อนหลัง
เปิด
Audit Object Access
จะสามารถตรวจสอบได้ว่า
ใครเปิดไฟล์
ใครแก้ไขไฟล์
ใครลบไฟล์
ช่วยวิเคราะห์ปัญหาได้ดียิ่งขึ้น
Best Practices สำหรับ Windows Server 2022
ใช้ Get-SmbOpenFile เป็นหลัก
แจ้งผู้ใช้งานก่อนปิดไฟล์
ใช้ PowerShell แทน GUI เมื่อมีผู้ใช้จำนวนมาก
เปิด Audit Log
เปิด Shadow Copy
ตรวจสอบ Session ค้างทุกสัปดาห์
สำรองข้อมูลทุกวัน
ทีมงาน comsiam แนะนำให้ผู้ดูแลระบบฝึกใช้ PowerShell ในการจัดการ File Lock เพราะรวดเร็วและเหมาะกับองค์กรขนาดกลางและขนาดใหญ่
สรุป
การบังคับปิดไฟล์ที่ถูกล็อกบน Windows Server 2022 เป็นทักษะสำคัญสำหรับผู้ดูแลระบบ File Server เพราะช่วยแก้ปัญหาไฟล์เปิดค้าง แก้ไขไม่ได้ หรือลบไม่ได้ได้อย่างรวดเร็ว
การใช้ Get-SmbOpenFile, Close-SmbOpenFile และการตรวจสอบ SMB Session อย่างสม่ำเสมอ จะช่วยให้ระบบ File Server ทำงานได้อย่างราบรื่นและลดเวลาหยุดชะงักของผู้ใช้งานในองค์กร