Windows(XP或更高版本)是否具有内置方法来创建永久驱动器映射,例如SUBST创建的映射?我找到了第三方工具psubst。没有第三方工具,有没有办法做到这一点?
subst
挑剔的斜杠规则提供了很好的条件,但这只是一个漂亮的包装器。您可以在不使用程序的情况下进行操作,而README则psubst
说明了操作方法。或者,请参见下面的davr的答案,其中引用了pREAD README。
Windows(XP或更高版本)是否具有内置方法来创建永久驱动器映射,例如SUBST创建的映射?我找到了第三方工具psubst。没有第三方工具,有没有办法做到这一点?
subst
挑剔的斜杠规则提供了很好的条件,但这只是一个漂亮的包装器。您可以在不使用程序的情况下进行操作,而README则psubst
说明了操作方法。或者,请参见下面的davr的答案,其中引用了pREAD README。
Answers:
那么维基百科提到:
C:\>SUBST /? Associates a path with a drive letter. SUBST [drive1: [drive2:]path] SUBST drive1: /D drive1: Specifies a virtual drive to which you want to assign a path. [drive2:]path Specifies a physical drive and path you want to assign to a virtual drive. /D Deletes a substituted (virtual) drive. Type SUBST with no parameters to display a list of current virtual drives.
因此,您可以使用将路径与驱动器号关联subst
。在持续SUBST命令(psubst)软件似乎是该死的方便,他们提供的解决方案从启动运行:
https://code.google.com/p/psubst/#Inconstancy
不稳定
但是,系统重新启动会破坏虚拟磁盘。该怎么办?启动后可以创建磁盘。但是,如果在启动的早期步骤中需要磁盘,该怎么办?例如,运行服务?有系统功能可以从系统注册表启动虚拟磁盘:
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] "Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents"
创建具有扩展名的文本文件
.REG
并运行它就足够了。下次启动系统时,虚拟磁盘将在登录时存在。它需要定义磁盘和路径的名称。请注意,路径中的每个反斜杠都会加倍。
在Windows中,您可以运行注册表编辑器,如下所示:
regedit
subst
了。但是在我以前的时候,我曾经只是在我的Startup文件夹中放置了一个批处理文件来完成这些工作。
\??
是NT对象管理器名称空间中的虚拟目录。首先,它检查登录会话DOS“设备”(实际上,DOS设备是指向NT设备的符号链接,通常位于中\Device
),然后检查\Global??
DOS设备。在WinObj中,您将在中找到登录会话设备\Sessions\0\DosDevices\[logon ID]
。请注意,对于每个LSA登录ID,登录会话设备都在会话0(服务)中进行了跟踪。它们与桌面会话无关。这就是为什么如果将驱动器映射为受限管理员,则在提升时不存在该驱动器。这是一个不同的登录。
进行安装HKEY_CURRENT_USER
的好处是每个用户都有不同的设置。我宁愿坚持用户空间设置,只要系统服务不依赖于设备。
REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
"F Drive"="subst F: D:\\mount\\db"
"G Drive"="subst G: D:\\mount\\log"
来源:http : //networkadminkb.com/KB/a446/how-to-use-drive-letters-mount-points-the-same-disk-drive.aspx
reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "F Drive" /d "subst F: D:\x\db"
NB \仅在它是subst命令的最后一个字符时才需要转义,例如,当目标是根目录时:"subst F: D:\\"
; 单\有将被解释为转义“它后面。
您链接到的页面中有一个答案。您不需要第三方工具,只需使用一个简单的注册表项即可完成该操作,如该页所述。
使用以下内容创建一个名为“ mapdrive.reg”的文本文件:
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Z:"="\\??\\C:\\Documents and Settings\\All Users\\Shared Documents"
然后,只需双击它即可进行设置,而无需第三方工具。
我发现此问题是因为我正在寻找对我的启动替代脚本的改进-它们可以正常工作,但有时在文件夹因无法映射驱动器而在启动时崩溃后执行。
首先,我编辑了注册表,但无法使其正常工作。但是,我确实遇到了这种替代方法,尽管它不使用subst,但确实为我回答了一个问题:“如何使SUBST映射在重新启动后持久存在?” 不要使用替代...(插入适当的“ computerName”和“ pathName”):
净使用u:“ \\ computerName \ c $ \ pathName” / persistent:是
在本次有关映射本地驱动器的讨论中,我根据Hank Arnold的建议进行了改编。我猜想\\ myComputerName \ c可能有用,但是我不知道应用$。
在尝试使用“ net use”命令之前,请尝试导航到
\\计算机名\ c $确保您的“ computerName”正确无误。
\\localhost\c$\path\to\thing
它,则可以跨机器移植(或更改计算机名称的升级)。在Win7 +上使用映射驱动器的缺点是,与本地驱动器相比,对网络驱动器应用的安全策略不同,某些程序只会拒绝运行映射驱动器。
由于原始的PSubst有一些局限性,并且似乎是由作者得出的结论,因此我不得不为自己的需要编写新版本的代码,以解决一些问题并增加功能和灵活性。
在此处查看PSubst版本3批处理文件
https://github.com/cyberponk/psubst
与Windows 7,Windows 8,Windows 10,Windows Server 2012兼容
注意: 该作品无意贬低原始作者的著作,仅是出于实际需要而出现,如下所示:
作为新手管理员,我一直需要替换网络驱动器并摆弄其他网络用户。
由于不是每个人都是Windows专家,所以我认为基于我在网上阅读的评论,具有错误处理功能的自动管理员提升会有所帮助。
当有些人在争执参数顺序时,我认为最好是脚本以任意顺序处理参数。
我想不起所有添加的功能,但是每个包含项纯属必要。我正在共享代码,以便其他人不会遇到我的麻烦。这样,除了共享和帮助之外,没有其他意图。
我正在扩展davr的答案,因为从映射驱动器删除的所有文件都会被永久删除,而不是进入回收站。此REG文件基于从TechNet文章编译的信息,该文章讨论了如何启用回收站。该示例将虚拟Q驱动器映射到文件夹“ OneDrive-Test”,并在Q驱动器上启用回收站。更改路径和名称以适合您的情况。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]
"Q:"="\\??\\C:\\Users\\Tony\\OneDrive - Test"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"RelativePath"="Q:\\"
"Category"=dword:00000004
"Name"="Q_Mapped_OneDrive"
[HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{9147E464-33A6-48E2-A3C9-361EFD417DEF}]
"MaxCapacity"=dword:0000c7eb
"NukeOnDelete"=dword:00000000
如果只有一个这样的映射驱动器,则可以使用GUID {9147E464-33A6-48E2-A3C9-361EFD417DEF}。如果您有多个映射驱动器,则每个驱动器都应与您喜欢的GUID生成器中的GUID匹配。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{GUID}
并重新启动,则HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\BitBucket\KnownFolder\{GUID}
Windows会自动生成下的相应值。Wow6432Node
钥匙下什么都没有给我显示,但是没有它们,回收站就可以工作。这是在Windows 7系统上,因此我不确定它在新版本上的行为是否有所不同。
psubst
只是一个与注册表无关的.bat文件。有关详细信息,请参见下面的@davr答案。