Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Ổ Đĩa Mạng Ánh Xạ Không Hiển Thị Trong Chương Trình Chạy Với Quyền Cao

Nếu bạn đang sử dụng các ổ đĩa mạng được ánh xạ, bạn có thể đã nhận thấy rằng chúng không hiển thị trong các ứng dụng chạy với đặc quyền quản trị viên (bao gồm cmd và PowerShell). Cài đặt mặc định của User Account Control (UAC) không cho phép truy cập các ổ đĩa mạng được ánh xạ (qua net use) từ các ứng dụng chạy ở chế độ nâng cao (Run as administrator). Điều này nghĩa là khi bạn chạy dấu nhắc lệnh hoặc trình quản lý file (như Total Commander) với đặc quyền nâng cao, chúng sẽ không hiển thị các ký tự ổ đĩa của các thư mục chia sẻ được gắn kết.

Ổ Đĩa Mạng Ánh Xạ Không Hiển Thị Trong Ứng Dụng Windows

Hãy kiểm tra xem bạn không thể truy cập ổ đĩa mạng được ánh xạ ở chế độ bình thường từ một ứng dụng nâng cao với UAC được bật. Ví dụ, hãy mở dấu nhắc lệnh với quyền người dùng và kiểm tra xem bạn có thể truy cập nội dung ổ đĩa mạng được ánh xạ Z:\ hay không.

Net use
Dir z:

Lệnh nên liệt kê nội dung thư mục chia sẻ mạng.

Nếu bạn mở dấu nhắc lệnh trong phiên hiện tại với tư cách quản trị viên, và cố gắng truy cập cùng ổ đĩa – bạn sẽ nhận được thông báo rằng đường dẫn đến ổ đĩa không được tìm thấy:

The system cannot find the path specified.

Hành vi này của Windows có thể gây ra một số bất tiện khi bạn thường xuyên chạy ứng dụng ở chế độ nâng cao. Có thể chạy ứng dụng mà không cần đặc quyền quản trị viên, nhưng điều này không phải lúc nào cũng áp dụng được.

Tại sao lại xảy ra? Đặc điểm này liên quan đến cơ chế UAC cho người dùng có đặc quyền quản trị cục bộ. Vấn đề là khi người dùng này đăng nhập, hai mã truy cập (access tokens) được tạo: mã đầu tiên cung cấp truy cập với đặc quyền quản trị bị vô hiệu hóa (mã truy cập được lọc, mà hầu hết các ứng dụng chạy) và mã thứ hai là mã truy cập quản trị với đầy đủ đặc quyền trong hệ thống (tất cả các ứng dụng được phê duyệt để nâng cao bởi UAC chạy trong ngữ cảnh này).

Bạn có thể sử dụng lệnh whoami /all trong hai phiên cmd.exe (bình thường và nâng cao) của cùng một người dùng và so sánh đặc quyền hiện tại, bạn sẽ thấy chúng khác biệt rất nhiều. Bảng sau liệt kê sự khác biệt về nhóm bảo mật và đặc quyền hiện tại trong mỗi phiên.

Phiên người dùng bình thường | Phiên người dùng nâng cao
Nhóm bảo mật |
Mandatory Label\Medium Mandatory Level Label S-1-16-8192 | Mandatory Label\High Mandatory Level Label S-1-16-12288
Đặc quyền | SeLockMemoryPrivilege, SeMachineAccountPrivilege, SeShutdownPrivilege, SeChangeNotifyPrivilege, SeUndockPrivilege, SeIncreaseWorkingSetPrivilege, SeTimeZonePrivilege | SeLockMemoryPrivilege, SeIncreaseQuotaPrivilege, SeMachineAccountPrivilege, SeSecurityPrivilege, SeTakeOwnershipPrivilege, SeLoadDriverPrivilege, SeSystemProfilePrivilege, SeSystemtimePrivilege, SeProfileSingleProcessPrivilege, SeIncreaseBasePriorityPrivilege, SeCreatePagefilePrivilege, SeBackupPrivilege, SeRestorePrivilege, SeShutdownPrivilege, SeSystemEnvironmentPrivilege, SeChangeNotifyPrivilege, SeRemoteShutdownPrivilege, SeUndockPrivilege, SeManageVolumePrivilege, SeImpersonatePrivilege, SeCreateGlobalPrivilege, SeIncreaseWorkingSetPrivilege, SeTimeZonePrivilege, SeCreateSymbolicLinkPrivilege, SeDelegateSessionUserImpersonatePrivilege

Các ứng dụng dưới cùng một người dùng có thể chạy trong hai ngữ cảnh khi UAC được bật (đặc quyền và không đặc quyền). Khi bạn ánh xạ thư mục chia sẻ mạng, hệ thống tạo các liên kết tượng trưng (DosDevices) lưu trữ ánh xạ ký tự ổ đĩa đến đường dẫn UNC. Các liên kết này được liên kết với mã truy cập quy trình hiện tại và không khả dụng cho các mã khác.

Vấn đề ngược lại cũng có thể xảy ra: khi người dùng có quyền quản trị trên máy tính đang kết nối ổ đĩa mạng bằng script đăng nhập Group Policy, tác vụ đã lên lịch hoặc công việc SCCM (đang chạy với đặc quyền nâng cao), các ổ đĩa này không hiển thị cho người dùng trong File Explorer (quy trình không đặc quyền).

Mẹo. Bạn có thể sử dụng một thủ thuật đơn giản để chạy File Explorer trong Windows với quyền admin (nâng cao).

Là một giải pháp thay thế, bạn có thể gắn kết ổ đĩa mạng từ dấu nhắc lệnh nâng cao bằng các lệnh: net use hoặc rundll32 SHELL32.dll,SHHelpShortcuts_RunDLL Connect.

Enablelinkedconnections: Bật Ổ Đĩa Ánh Xạ Trong Ứng Dụng Nâng Cao

Có một giải pháp dễ dàng hơn. Để thực hiện nó, bạn phải thực hiện một số thay đổi trong registry:

  1. Mở trình chỉnh sửa registry (regedit.exe);
  2. Đi đến khóa registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System;
  3. Tạo một tham số mới (kiểu DWORD) với tên EnableLinkedConnections và giá trị 1;
    Mẹo. Cùng một thay đổi có thể được thực hiện bằng một lệnh duy nhất:
    reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLinkedConnections" /t REG_DWORD /d 0x00000001 /f
    hoặc với PowerShell:
    New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name EnableLinkedConnections -Value 1 -PropertyType 'DWord'
  4. Khởi động lại máy tính của bạn (hoặc khởi động lại dịch vụ LanmanWorkstation bằng lệnh: get-service LanmanWorkstation |Restart-Service –Force, và đăng nhập lại Windows).

Sau khi khởi động lại máy tính, hãy đảm bảo rằng người dùng có thể thấy các ổ đĩa mạng được ánh xạ trong các chương trình chạy với quyền admin. Câu đảo cũng đúng: tất cả các ổ đĩa mạng được ánh xạ ở chế độ nâng cao cũng sẽ có sẵn trong phiên người dùng không đặc quyền.

Điều này hoạt động trên tất cả các phiên bản Windows bắt đầu từ Vista đến Windows 10/Windows Server 2019.

Lưu ý. Thật không may, không có cài đặt GPO để bật chế độ EnableLinkedConnections. Để áp dụng thiết lập này trên các máy tính miền, bạn cần triển khai tham số registry này qua GPP.

Cách nó hoạt động? Sau khi bạn bật tham số registry EnableLinkedConnections, LanmanWorkstation và LSA (lsass.exe) sẽ kiểm tra mã truy cập thứ hai liên kết với phiên của người dùng hiện tại. Nếu mã này được tìm thấy, danh sách các ổ đĩa mạng được ánh xạ sẽ được sao chép từ mã này sang mã kia. Do đó, các ổ đĩa mạng được ánh xạ ở chế độ đặc quyền sẽ hiển thị ở chế độ bình thường, và ngược lại.

Mẹo. Là giải pháp thay thế, bạn có thể tạo liên kết tượng trưng đến thư mục chia sẻ mạng đích. Ví dụ, như sau:

mklink /D c:\docs \\dublin-fs1\docs

Bạn có thể truy cập ổ đĩa này ở cả chế độ bình thường và nâng cao. Cần lưu ý rằng một trong những nhược điểm của phương pháp này là bạn truy cập thư mục chia sẻ với tư cách người dùng hiện tại. Không thể sử dụng tài khoản của người dùng khác như trong trường hợp lệnh net use.

Sau khi bật tham số EnableLinkedConnections, các ổ đĩa được ánh xạ cũng sẽ có sẵn từ Các Nhiệm Vụ Đã Lên Lịch (Scheduled Tasks) được khởi chạy dưới người dùng hiện tại. Nếu tác vụ chạy dưới LocalSystem hoặc người dùng khác, các ổ đĩa mạng được ánh xạ của người dùng hiện tại sẽ không khả dụng.