Đã lâu lắm rồi tôi mới thấy nhiều con bò như vậy :)
Nhấp chuột phải -> Thuộc tính -> Tùy chỉnh ---> Biểu tượng thay đổi không khả dụng trên các cổ phiếu SMB.
... ---> Thay đổi hình ảnh không có hiệu lực.
Desktop.ini KHÔNG được xử lý bởi các cửa sổ cho các chia sẻ SMB, vì Linux diễn giải bit "Chỉ đọc" của thư mục một cách khác và báo cáo lại cho Windows không chính xác:
- Trong Linux, Đọc chỉ có nghĩa là Chỉ đọc!
- Trong Windows, Chỉ đọc (chỉ với các thư mục) có nghĩa là xử lý Desktop.ini !!!
Có một cài đặt đăng ký buộc xử lý Desktop.ini bằng cách sử dụng cờ "Hệ thống" (siêu ẩn) thay vì "Chỉ đọc" nhưng tôi chưa bao giờ làm cho nó hoạt động như mong đợi.
Việc thiếu xử lý desktop.ini trên SMB phá vỡ nhiều thứ khác, không chỉ các biểu tượng thư mục: Liên kết tượng trưng và không gian tên được cá nhân hóa cũng không hoạt động. Các lợi ích tại Microsoft chỉ là từ chối đối phó với nó, tất cả đều quay trở lại Windows NT.
Tất nhiên luôn có thể tạo các liên kết gián tiếp để truy cập các thư mục SMB và thay vào đó cung cấp các biểu tượng tùy chỉnh đó, nhưng điều đó gây ra nhiều vấn đề khác:
- Các liên kết cắt ngắn được đánh giá và lưu trữ theo mặc định trong Windows khi bạn mở thư mục mẹ, gây ra sự chậm trễ "lớn" trong trình thám hiểm nếu một thư mục chứa các phím tắt để chia sẻ mạng chậm hoặc ngủ.
- Các phím tắt trong cửa sổ là tuyệt đối, không tương đối ergo không di động. Điều này tạo ra rất nhiều bảo trì nên đường dẫn gốc đích thay đổi. Windows cũng có thói quen tự động chuyển đổi các vars môi trường thành các liên kết tuyệt đối, đánh bại mọi nỗ lực làm việc xung quanh vấn đề này.
- Dịch vụ "Khách hàng theo dõi liên kết phân tán" dũng cảm của họ sẽ làm mọi thứ tiến xa hơn.
Cách tốt nhất để thực hiện các liên kết tương đối trong Windows là sử dụng tập lệnh VBS. Ở dạng gốc (văn bản), tập lệnh VBS sẽ không có biểu tượng tùy chỉnh, nhưng bạn có thể gán biểu tượng tùy chỉnh cho tệp EXE nếu bạn biên dịch nó.
Tuy nhiên, đó là rất nhiều công việc và tập lệnh sẽ tạo ra các thông báo cảnh báo "không đáng tin cậy" mỗi khi bạn khởi chạy nó từ một mạng, trừ khi tập lệnh là cục bộ hoặc bạn tìm cách ký tên.
VBS Relative Link example:
============================
' This is a VB Script, which emulates a RELATIVE file link/shortcut in Win XP
'
' 1) The first line declares an untyped variable ==> objshell
'
' 2) The second line instantiates a new object derived from ==> Shell.Application
'
' 3) The third line invokes the object's method ==> ShellExecute
'
' with the following parametters: "target path"
' "target's arguments"
' "starting directory"
' "action verb"
' Initial window mode: 0 = Hidden Window
' 1 = Normal Window
' 2 = Minimized
' 3 = Maximized
' 4 = Most recent size and position, keep active window active
' 5 = Current size and position
' 6 =
' 7 = Minimized, keep active window active
' 10 = Default state specified by target application
'
' 4) The last line frees/destroys the shell object
'
'
dim objShell
set objShell = CreateObject("Shell.Application")
objShell.ShellExecute _
"..\..\..\SomePath_Three_Dirs_UP_etc" ,_
"" ,_
"" ,_
"open" ,_
1
set objShell = nothing
===============================================================
desktop.initùy chọn chi tiết hơn