之前,已使用 添加从到 的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
别名建立了设备映射。此方法在D:\
C:\Build
维基百科 SUBST 文章和类似的。
更新至 Windows 21H1 后此注册表设置已被删除1,即使重新添加设置后,“D:”设备仍然不是在 Explorer、powershell 或 bash-git (mingw) 中进行枚举。
安装后,“DOS 设备”注册表部分已更新1,添加了如下所示的注册表项。但是,这似乎没有生效。我如何才能将此“永久替换”功能恢复到目录目标?
Name Value
D: \\??\C:\Build
1 https://www.satsignal.eu/software/Win-10-notes.html注意到“DOS 设备”已被删除,必须手动添加回来(在 Windows 10 build 2004 中)。它没有提到此功能已被删除。我已重新添加 DOS 设备条目,但映射驱动器仍未出现。
使用 WinObj(来自 Winternals)显示
GLOBAL??
“D:”的正确名称和符号链接目标。“C:\Build”目录具有标准权限(例如,系统完全控制、经过身份验证的用户几乎完全控制、具有读取权限的用户)。
这是 Windows 10 到 21H1 的就地更新。之前的版本可能是 Windows 10 build 1909,绝对不是 20H2。
或
net use
等价于不是在这种情况下,这是一种替代解决方案。访问必须是内核/驱动程序级别的别名,以公开底层文件系统的全部性能和功能。
使用 Windows 21H1 中的“DOS 设备”条目时,“D:”设备仍然以某种方式为 Windows 所知,并且不能与 SUBST 命令一起使用,即使它未被枚举或无法以其他方式访问。
C:\Users\me>subst X: C:\Build
C:\Users\me>subst D: C:\Build
Invalid parameter - D:
C:\Users\me>D:
The system cannot find the drive specified.
根据建议的答案,New-PSDrive
已经尝试过。但是,这种方法似乎不是一个合适的替代方案,至少有两个原因:
不同于
SUBST
的New-PSDrive -Name "D" -PSProvider "FileSystem" -Root "C:\Build"
是不是同一会话中不同程序枚举的驱动器。例如,Windows 资源管理器中不会显示任何新的“D:”驱动器。New-PSDrive .. -Persist
仅适用于网络文件系统(即使是本地文件系统)。由于性能下降和文件系统功能减少,因此不适合一般用途。
答案1
使用 PowerShellNew-PSDrive
反而
New-PSDrive -Name "D" -PSProvider "FileSystem" -Root "\\localhost\c$\Build" -Persist
该-Persist
选项将创建永久驱动器。您也可以将其删除以创建临时驱动器,就像 一样subst
,然后
答案2
@用户2864740:
我也遇到了同样的问题,而且我还注意到在使用时替代一些应用程序无法识别新字母。
然后当我使用净使用命令后,我发现系统检测到我的驱动器已被分配(但在文件资源管理器中不可见)。我可以想象注册表项保留了字母,但即使使用 SUBST 命令后也无法使用,这似乎有效,因为它显示在 Windows 文件资源管理器中,而驱动器可用于访问文件,但不能用于某些应用程序。
为了解决这个问题,我必须
- 从注册表中删除条目
- 重启我的电脑
- 使用 SUBST 映射我的驱动器号
我希望这个解决方案能够帮助您解决问题。