Xử lý lỗi ổ mạng không hiển thị hết thư mục con (cache-SMB)
Ngày đăng
Nhiều người dùng phản ánh khi mở ổ mạng chung (ví dụ ổ L: ánh xạ tới \\SRV01\SharedFolder), File Explorer chỉ hiển thị một phần thư mục — nhấn F5 hoặc chờ một lúc mới thấy đủ, đôi khi kèm dấu ❌ đỏ trên ổ ánh xạ. Đây là lỗi phía máy trạm (cache/phiên kết nối), không phải mất dữ liệu hay sai phân quyền.
Mọi tên máy, địa chỉ IP và tên ổ trong bài đều là giá trị mẫu; triển khai thật thì thay cho khớp.
Dấu hiệu quan trọng nhất: lỗi không cố định — tự khỏi khi F5, chờ lâu, hoặc kết nối lại. Đặc trưng này cho thấy đây là lỗi cache/phiên (client-side), không phải phân quyền. Lỗi phân quyền thì thiếu vĩnh viễn, không tự hiện lại.
🔍 Chẩn đoán nhanh — 30 giây
Bước đầu tiên luôn là xác định đây là lỗi cache/hiển thị hay lỗi phân quyền, vì hai hướng xử lý khác hẳn nhau. Trên máy đang bị lỗi, chạy lệnh liệt kê trực tiếp trên server (không đi qua cache của Explorer):
MÁY BỊ LỖI CMD hoặc PowerShell
dir \\SRV01.ntcom.local\SharedFolder
Đối chiếu kết quả để chọn hướng xử lý:
Kết quả | Kết luận | Hướng xử lý |
|---|---|---|
dir hiện ĐỦ thư mục, nhưng Explorer thiếu | Lỗi cache / hiển thị (client-side) | Áp mục 5.1 – 5.3 |
dir cũng thiếu thư mục | Lỗi phiên / mạng / enumeration | Áp mục 5.2 – 5.4 |
Thiếu cố định, F5 vẫn thiếu, dir vẫn thiếu | Có thể là phân quyền NTFS | Kiểm tra quyền trên server |
⚙️ Nguyên nhân — xếp theo tần suất
Mức độ | Nguyên nhân | Mô tả |
|---|---|---|
🔴 Cao nhất | SMB Directory Cache | Máy trạm cache danh sách thư mục khoảng 10 giây để đỡ hỏi server liên tục, nên hiện bản cũ đến khi hết hạn — chính là hiện tượng "F5 mới đủ". |
🟠 Cao | Hibernate / Fast Startup | Máy ngủ đông rồi bật lại làm treo phiên SMB tới server; 1–2 tiếng sau tự hồi phục khi phiên được thiết lập lại. |
🟠 Cao | Offline Files (CSC) | Hiển thị bản cache cục bộ (cũ/thiếu) thay vì nội dung thật trên server. |
🟡 Trung bình | Mạng chập / Server tải cao | Phản hồi liệt kê thư mục chậm hoặc không trọn vẹn, Explorer render thiếu. |
🟡 Trung bình | Ổ ánh xạ mất kết nối | Mapped drive không tự kết nối lại sau khi mạng gián đoạn hoặc máy ngủ dậy. |
❌ Điều KHÔNG phải nguyên nhân
Bỏ user khỏi nhóm Local Administrators không gây ra lỗi này. Quyền xem thư mục chia sẻ dựa trên danh tính domain của user cộng với NTFS trên server — không thay đổi khi gỡ quyền local admin (đó là quyền trên máy, không phải trên share). Nếu hiện tượng trùng thời điểm gỡ admin thì chỉ là trùng hợp; gốc lỗi vẫn là các nguyên nhân client-side ở trên.
Chỉ nghi ngờ phân quyền NTFS khi hiện tượng thiếu cố định (không tự hiện lại). Khi đó kiểm tra quyền của từng thư mục con trên server:
MÁY CHỦ PowerShell quyền Administrator
Get-ChildItem D:\SharedFolder -Directory | ForEach-Object {"==== $($_.Name) ===="(Get-Acl $_.FullName).Access |Select-Object IdentityReference, FileSystemRights, AccessControlType |Format-Table -AutoSize | Out-String}
Thư mục nào không có nhóm BUILTIN\Users (hoặc nhóm phòng ban tương ứng) thì user đó không nhìn thấy — đó là phân quyền có chủ đích, không phải lỗi.
🛠️ Cách xử lý chi tiết
5.1 Tắt SMB Directory Cache — trị nguyên nhân số một
Buộc máy trạm luôn hỏi server thay vì dùng bản cache cũ.
MÁY TRẠM PowerShell quyền Administrator
Set-SmbClientConfiguration -DirectoryCacheLifetime 0 -FileInfoCacheLifetime 0 -FileNotFoundCacheLifetime 0 -ForceGet-SmbClientConfiguration | Select-Object *CacheLifetime* # kiem tra: tat ca phai = 0
Cách qua registry (để đẩy bằng GPO): khoá HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters, tạo ba giá trị DWORD DirectoryCacheLifetime, FileInfoCacheLifetime, FileNotFoundCacheLifetime đều bằng 0.
5.2 Tắt Hibernate và Fast Startup
Máy văn phòng nối domain không nên dùng hibernate — đây là thủ phạm treo phiên mạng của hiện tượng "hôm qua thấy, hôm nay không". Lệnh dưới tắt hibernate và kéo theo tắt Fast Startup.
MÁY TRẠM quyền Administrator
powercfg /hibernate off
5.3 Tắt Offline Files (CSC)
Cần khởi động lại máy để có hiệu lực.
MÁY TRẠM PowerShell quyền Administrator
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\CSC" -Name Start -Value 4 -Force
5.4 Kết nối lại ổ mạng khi bị dấu ❌ đỏ
Ba bước đầu không cần quyền admin.
MÁY TRẠM CMD
klist purgeipconfig /flushdnsnet use * /delete /ynet use L: \\192.168.1.1\SharedFolder /persistent:yesnet use S: \\192.168.1.1\Scan /persistent:yes
🚀 Triển khai đồng loạt bằng GPO
Gộp cả ba cấu hình (SMB cache, Offline Files, Hibernate) vào một Startup Script rồi đẩy cho toàn bộ máy trạm. Startup Script chạy dưới quyền SYSTEM lúc máy khởi động, không phụ thuộc người dùng có quyền admin hay không.
MÁY CHỦ file NTCOM_Fix_ShareView.ps1
# NTCOM - Sua loi client khong hien het thu muc tren o mang# Trien khai: GPO Startup Script (Computer Config), chay quyen SYSTEM# 1) Tat SMB directory cachetry {Set-SmbClientConfiguration -DirectoryCacheLifetime 0 -FileInfoCacheLifetime 0 -FileNotFoundCacheLifetime 0 -Force -ErrorAction Stop} catch {$p = "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters"New-ItemProperty $p -Name DirectoryCacheLifetime -Value 0 -PropertyType DWord -ForceNew-ItemProperty $p -Name FileInfoCacheLifetime -Value 0 -PropertyType DWord -ForceNew-ItemProperty $p -Name FileNotFoundCacheLifetime -Value 0 -PropertyType DWord -Force}# 2) Tat Offline Files (can reboot)Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\CSC" -Name Start -Value 4 -Force# 3) Tat Hibernate + Fast Startup& powercfg /hibernate off
Các bước gắn GPO:
- Copy file NTCOM_Fix_ShareView.ps1 vào \\ntcom.local\NETLOGON\.
- Mở gpmc.msc, chuột phải OU máy trạm, chọn Create a GPO and Link it here, đặt tên "NTCOM - Fix Share View".
- Edit GPO: Computer Configuration → Policies → Windows Settings → Scripts → Startup → PowerShell Scripts → Add.
- Script Name: \\ntcom.local\NETLOGON\NTCOM_Fix_ShareView.ps1.
- Máy áp khi khởi động lại kế tiếp (Offline Files và Hibernate cần reboot mới có hiệu lực đầy đủ).
Muốn áp ngay không chờ reboot cho máy đã bật WinRM, chạy từ máy chủ:
MÁY CHỦ PowerShell
Invoke-Command -ComputerName <ten-may> {Set-SmbClientConfiguration -DirectoryCacheLifetime 0 -FileInfoCacheLifetime 0 -FileNotFoundCacheLifetime 0 -Force}
👤 Công cụ cho người dùng
Đặt file "Lam moi ket noi mang.bat" lên Desktop chung (C:\Users\Public\Desktop) để người dùng tự bấm khi gặp lỗi. Ba bước đầu chạy được không cần quyền admin.
MÁY TRẠM file Lam moi ket noi mang.bat
@echo offchcp 65001 >nulecho Dang lam moi ket noi mang...rem 1. Lam moi ve Kerberos + DNSklist purge >nul 2>&1ipconfig /flushdns >nul 2>&1rem 2. Ket noi lai o mangnet use * /delete /y >nul 2>&1net use L: \\192.168.1.1\SharedFolder /persistent:yesnet use S: \\192.168.1.1\Scan /persistent:yesrem 3. Dong bo gio (neu co quyen)w32tm /resync /force >nul 2>&1echo XONG! Mo File Explorer va bam F5.timeout /t 4 >nul
Đẩy file lên Desktop mọi máy bằng GPO: Computer Configuration → Preferences → Windows Settings → Files → New → File, ô Destination điền C:\Users\Public\Desktop\Lam moi ket noi mang.bat. Mọi user đăng nhập máy đều thấy file trên desktop.
✅ Kiểm chứng và phòng ngừa
Sau khi áp, kiểm chứng đủ các mục sau mới coi là xong:
- Trên máy trạm: Get-SmbClientConfiguration | Select-Object *CacheLifetime* — tất cả phải bằng 0.
- Mở ổ mạng — thấy đủ thư mục ngay, không phải F5 hay chờ.
- powercfg /a — mục Hibernate nằm trong nhóm "not available".
- w32tm /query /source — trỏ về Domain Controller (chống lệch giờ gây treo Kerberos).
Phòng ngừa lâu dài:
- ✅ Đồng bộ giờ toàn domain (chế độ NT5DS) qua GPO.
- ✅ Tắt hibernate mặc định cho máy trạm.
- ✅ Ổ mạng ánh xạ dạng persistent và tự kết nối lại.
- ✅ Tách vai trò File Server khỏi Domain Controller nếu server tải cao.
- ✅ Kiểm tra switch và cáp mạng tới server định kỳ.
🧯 Sự cố thường gặp
Hiện tượng | Nguyên nhân | Xử lý |
|---|---|---|
F5 thì đủ nhưng vừa mở lại thiếu | SMB directory cache còn bật | Mục 5.1: đặt các CacheLifetime = 0 |
Sau khi ngủ dậy 1–2 tiếng mới hiện đủ | Hibernate / Fast Startup treo phiên | Mục 5.2: powercfg /hibernate off |
Nội dung cũ/thiếu dù server đã có | Offline Files (CSC) hiện bản cache | Mục 5.3: tắt CSC rồi reboot |
dir cũng thiếu, không chỉ Explorer | Mạng chập hoặc server quá tải lúc liệt kê | Kiểm tra tải CPU/đĩa server và đường mạng tới server |
Thiếu cố định, không tự hiện lại | Phân quyền NTFS trên thư mục con | Kiểm tra ACL trên server, cấp quyền cho đúng nhóm |
Nguyên tắc gỡ rối: luôn tách bạch lỗi hiển thị với lỗi phân quyền bằng lệnh dir chạy ngay trên máy đang lỗi. dir hiện đủ mà Explorer thiếu thì chắc chắn là cache/phiên, xử lý ở phía máy trạm.
Tài liệu mang tính tham khảo kỹ thuật; áp dụng theo môi trường thực tế và kiểm duyệt trước khi triển khai diện rộng. Mọi tên máy, IP và tên ổ trong bài đều là giá trị mẫu.
Bình luận(0)
Chưa có bình luận. Hãy là người đầu tiên chia sẻ ý kiến!

