ไดรฟ์เครือข่ายที่แมปไม่แสดงในโปรแกรมที่ผ่านการยกระดับ
หากคุณใช้ไดรฟ์เครือข่ายที่แมปไว้ คุณอาจสังเกตเห็นว่าไดรฟ์เหล่านี้ไม่แสดงในแอปที่ทำงานด้วยสิทธิ์ของผู้ดูแลระบบ (รวมถึง cmd และ PowerShell) การตั้งค่าเริ่มต้น การควบคุมบัญชีผู้ใช้ (UAC) ไม่อนุญาตให้เข้าถึงไดรฟ์เครือข่ายที่แมปไว้ (ผ่าน
net use) จากแอปพลิเคชันที่ทำงานในโหมดยกระดับ (เรียกใช้ในฐานะผู้ดูแลระบบ) ซึ่งหมายความว่าเมื่อคุณเรียกใช้พรอมต์คำสั่งหรือตัวจัดการไฟล์ (เช่น Total Commander) ที่มีสิทธิ์ระดับสูง พวกเขาจะไม่แสดงอักษรระบุไดรฟ์ของโฟลเดอร์ที่ใช้ร่วมกันที่เมาท์
คุณอาจประสบปัญหาดังกล่าวหากมีเงื่อนไขต่อไปนี้:
ไดรฟ์เครือข่ายถูกแมปในเซสชันของผู้ใช้ (ผ่าน GPO หรือด้วยตนเองผ่าน
net use);
-
UAC เปิดใช้งานบนคอมพิวเตอร์ (พารามิเตอร์ GPO การควบคุมบัญชีผู้ใช้: พฤติกรรมของการแจ้งเตือนการยกระดับสำหรับผู้ดูแลระบบในโหมดการอนุมัติของผู้ดูแลระบบ ถูกตั้งค่าเป็นค่าเริ่มต้น “แจ้งข้อมูลรับรอง”)
ผู้ใช้ปัจจุบันมีสิทธิ์ของผู้ดูแลระบบในคอมพิวเตอร์และเรียกใช้แอปในโหมด "เรียกใช้ในฐานะผู้ดูแลระบบ"
ในกรณีนี้ ไดรฟ์เครือข่ายจะแสดงใน Windows File Explorer และในแอพ แต่จะไม่แสดงในแอพพลิเคชั่นที่ทำงานในโหมดยกระดับ
ในบทความนี้ เราจะแสดงวิธีอนุญาตการเข้าถึงไดรฟ์เครือข่ายที่แมปจากแอปที่ทำงานในโหมดยกระดับบน Windows 10 ปัญหานี้เกิดขึ้นทั้งกับไดรฟ์เครือข่ายที่แมปผ่าน Group Policy และสำหรับโฟลเดอร์ที่เชื่อมต่อโดยผู้ใช้
สำคัญ ไม่แนะนำอย่างยิ่งให้ปิดใช้งาน UAC อย่างสมบูรณ์ แม้แต่สำหรับโปรแกรมเฉพาะ
ไดรฟ์เครือข่ายที่แมปไม่แสดงใน Windows Apps
ตรวจสอบว่าคุณไม่สามารถเข้าถึงไดรฟ์เครือข่ายที่แมปที่เชื่อมต่อในโหมดปกติจากแอปพลิเคชันที่ยกระดับโดยเปิดใช้งาน UAC ตัวอย่างเช่น ลองเปิดพรอมต์คำสั่งด้วยสิทธิ์ของผู้ใช้และตรวจสอบว่าคุณสามารถเข้าถึงเนื้อหาของไดรฟ์เครือข่ายที่แมป Z:\ ได้หรือไม่
Net use
Dir z:คำสั่งควรแสดงรายการเนื้อหาของโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน
หากคุณเปิดพรอมต์คำสั่งในเซสชันปัจจุบันในฐานะผู้ดูแลระบบ และพยายามเข้าถึงไดรฟ์เดียวกัน คุณจะได้รับข้อความว่าไม่พบเส้นทางไปยังไดรฟ์:
The system cannot find the path specified.
ลักษณะการทำงานนี้ของ Windows อาจทำให้เกิดความไม่สะดวกเมื่อคุณเรียกใช้แอปพลิเคชันในโหมดยกระดับบ่อยๆ เป็นไปได้ที่จะเรียกใช้แอปพลิเคชันโดยไม่มีสิทธิ์ของผู้ดูแลระบบ แต่ก็ไม่สามารถใช้ได้เสมอไป
เหตุใดจึงเกิดขึ้น ลักษณะเฉพาะนี้เกี่ยวข้องกับกลไก UAC สำหรับผู้ใช้ที่มีสิทธิ์ของผู้ดูแลระบบภายในเครื่อง สิ่งสำคัญคือเมื่อผู้ใช้รายนี้เข้าสู่ระบบ โทเค็นการเข้าถึงสองรายการจะถูกสร้างขึ้น: โทเค็นแรกให้การเข้าถึงโดยปิดใช้งานสิทธิ์ของผู้ดูแลระบบ (โทเค็นการเข้าถึงที่กรอง ซึ่งแอพส่วนใหญ่ทำงานอยู่) และตัวที่สองคือโทเค็นผู้ดูแลระบบที่มีสิทธิ์เต็มรูปแบบ ในระบบ (แอปทั้งหมดที่ได้รับอนุมัติให้ยกระดับโดย UAC กำลังทำงานในบริบทนี้)
คุณสามารถใช้ได้
whoami /allคำสั่งใน cmd.exe สองเซสชัน (ปกติและยกระดับ) ของผู้ใช้คนเดียวกันและเปรียบเทียบสิทธิ์ปัจจุบัน คุณจะเห็นว่าแตกต่างกันมาก ตารางต่อไปนี้แสดงความแตกต่างในกลุ่มความปลอดภัยและสิทธิ์การใช้งานปัจจุบันในแต่ละเซสชัน
| Normal user session | Elevated user session | |
| Security group | Mandatory Label\Medium Mandatory Level Label S-1-16-8192 | Mandatory Label\High Mandatory Level Label S-1-16-12288 |
| Privileges | 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 |
แอปพลิเคชันภายใต้ผู้ใช้เดียวกันอาจทำงานในสองบริบทเมื่อเปิดใช้งาน UAC (มีสิทธิ์และไม่มีสิทธิ์) เมื่อคุณแมปโฟลเดอร์เครือข่ายที่ใช้ร่วมกัน ระบบจะสร้างลิงก์สัญลักษณ์ (DosDevices) ที่เก็บการแมปอักษรชื่อไดรฟ์กับเส้นทาง UNC ลิงก์เหล่านี้เชื่อมโยงกับโทเค็นการเข้าถึงกระบวนการปัจจุบัน และไม่สามารถใช้ได้สำหรับโทเค็นอื่นๆ
ปัญหาย้อนกลับอาจเกิดขึ้นได้เช่นกัน: เมื่อผู้ใช้ที่มีสิทธิ์ของผู้ดูแลระบบในคอมพิวเตอร์กำลังเชื่อมต่อไดรฟ์เครือข่ายโดยใช้สคริปต์การเข้าสู่ระบบของ Group Policy งานที่กำหนดเวลาไว้ หรืองาน SCCM (ซึ่งกำลังทำงานด้วยสิทธิ์ขั้นสูง) ผู้ใช้จะมองไม่เห็นไดรฟ์เหล่านี้ใน File Explorer (กระบวนการที่ไม่มีสิทธิพิเศษ)
เคล็ดลับ คุณสามารถใช้เคล็ดลับง่ายๆ เพื่อเรียกใช้ File Explorer ใน Windows ด้วยสิทธิ์ของผู้ดูแลระบบ (ยกระดับ)
วิธีแก้ปัญหาเบื้องต้น คุณสามารถต่อเชื่อมไดรฟ์เครือข่ายจากพร้อมท์คำสั่งที่ยกระดับได้โดยใช้คำสั่ง:
net useหรือ
rundll32 SHELL32.dll,SHHelpShortcuts_RunDLL ConnectEnablelinkedconnections: เปิดใช้งาน Mapped Drives ในแอพ Elevated
มีวิธีแก้ไขที่ง่ายกว่า คุณต้องทำการเปลี่ยนแปลงบางอย่างกับรีจิสทรี:
เปิดตัวแก้ไขรีจิสทรี (regedit.exe);
ไปที่คีย์รีจิสทรี HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System;
สร้างพารามิเตอร์ใหม่ (ประเภท DWORD) ด้วยชื่อ EnableLinkedConnections และค่า 1 ;
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "EnableLinkedConnections" /t REG_DWORD /d 0x00000001 /fหรือด้วย PowerShell:
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' -Name EnableLinkedConnections -Value 1 -PropertyType 'DWord'รีสตาร์ทเครื่องคอมพิวเตอร์ของคุณ (หรือรีสตาร์ทบริการ LanmanWorkstation ด้วยคำสั่ง:
get-service LanmanWorkstation |Restart-Service -Forceและล็อกออน Windows ใหม่)
หลังจากรีสตาร์ทคอมพิวเตอร์ ตรวจสอบให้แน่ใจว่าผู้ใช้สามารถเห็นไดรฟ์เครือข่ายที่แมปในโปรแกรมที่ทำงานด้วยสิทธิ์ของผู้ดูแลระบบ ข้อความย้อนกลับเป็นจริง: ไดรฟ์เครือข่ายทั้งหมดที่แมปในโหมดยกระดับจะพร้อมใช้งานในเซสชันผู้ใช้ที่ไม่มีสิทธิ์
ใช้ได้กับ Windows ทุกรุ่นตั้งแต่ Vista ถึง Windows 10/Windows Server 2019
หมายเหตุ น่าเสียดายที่ไม่มีการตั้งค่า GPO เพื่อเปิดใช้งานโหมด EnableLinkedConnections ในการใช้การตั้งค่านี้กับคอมพิวเตอร์โดเมน คุณต้องปรับใช้พารามิเตอร์รีจิสทรีนี้ผ่าน GPP
มันทำงานอย่างไร หลังจากที่คุณเปิดใช้งานพารามิเตอร์รีจิสทรี EnableLinkedConnections แล้ว LanmanWorkstation และ LSA (lsass.exe) จะตรวจสอบโทเค็นการเข้าถึงที่สองที่เกี่ยวข้องกับเซสชันของผู้ใช้ปัจจุบัน หากพบโทเค็นนี้ รายการไดรฟ์เครือข่ายที่แมปไว้จะถูกคัดลอกจากโทเค็นหนึ่งไปยังอีกโทเค็นหนึ่ง ดังนั้น ไดรฟ์เครือข่ายที่แมปในโหมดสิทธิพิเศษจะมองเห็นได้ในโหมดปกติ และในทางกลับกัน
เคล็ดลับ เป็นอีกทางเลือกหนึ่ง คุณสามารถสร้างลิงก์สัญลักษณ์ไปยังโฟลเดอร์เครือข่ายที่ใช้ร่วมกันเป้าหมาย ตัวอย่างเช่น:
mklink /D c:\docs \\dublin-fs1\docsคุณสามารถเข้าถึงไดร์ฟนี้ได้ทั้งในโหมดปกติและโหมดยกระดับ ควรสังเกตว่าข้อเสียประการหนึ่งของวิธีนี้คือคุณเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันในฐานะผู้ใช้ปัจจุบัน ไม่สามารถใช้บัญชีของผู้ใช้รายอื่นได้เช่นเดียวกับในกรณีของ
net useสั่งการ.
หลังจากเปิดใช้งานพารามิเตอร์ EnableLinkedConnections แล้ว ไดรฟ์ที่แมปจะพร้อมใช้งานจากงานตามกำหนดเวลาที่เปิดใช้งานภายใต้ผู้ใช้ปัจจุบัน หากเรียกใช้งานเป็น LocalSystem หรือผู้ใช้รายอื่น ไดรฟ์เครือข่ายที่แมปของผู้ใช้ปัจจุบันจะไม่สามารถใช้งานได้





