Windows 21H1 更新后,“DOS 设备”到目录(又称永久 SUBST)不再适用

Windows 21H1 更新后,“DOS 设备”到目录(又称永久 SUBST)不再适用

之前,已使用 添加从到 的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已经尝试过。但是,这种方法似乎不是一个合适的替代方案,至少有两个原因:

  • 不同于SUBSTNew-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,然后

  • 将命令放入轮廓(运行notepad $PROFILE以打开它,如果不可用则创建它)在每次启动 PowerShell 时运行它,或者
  • 将命令添加到任务计划程序中登录时运行/启动/随便

答案2

@用户2864740:

我也遇到了同样的问题,而且我还注意到在使用时替代一些应用程序无法识别新字母。

然后当我使用净使用命令后,我发现系统检测到我的驱动器已被分配(但在文件资源管理器中不可见)。我可以想象注册表项保留了字母,但即使使用 SUBST 命令后也无法使用,这似乎有效,因为它显示在 Windows 文件资源管理器中,而驱动器可用于访问文件,但不能用于某些应用程序。

为了解决这个问题,我必须

  • 从注册表中删除条目
  • 重启我的电脑
  • 使用 SUBST 映射我的驱动器号

我希望这个解决方案能够帮助您解决问题。

相关内容