如何使SUBST映射在重启时持久化?
Windows (XP或更高版本)是否有内置的方法来创建持久的驱动器映射,就像SUBST创建的那样?我发现一个第三方工具psubst。有沒有辦法在沒有第三方工具的情況下做到這一點?
Windows (XP或更高版本)是否有内置的方法来创建持久的驱动器映射,就像SUBST创建的那样?我发现一个第三方工具psubst。有沒有辦法在沒有第三方工具的情況下做到這一點?
那么 维基百科提到:
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
将路径与驱动器字母联系起来。Persistent SUBST命令(psubst)](https://code.google.com/p/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
在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
我发现这个是因为我在寻找一个改进我的启动子脚本的方法–它们工作正常,但有时在启动时文件夹崩溃后执行,因为我的驱动器还没有映射。
首先,我编辑了注册表,但无法让它工作。然而,我确实遇到了这个替代方案,虽然它没有使用subst,但它确实为我回答了这个问题,"如何使subst映射在重启时持久化?" 不要使用subst… (插入适当的'computerName'和'pathName’):
net use u: "\computerName\c$\pathName" /persistent:yes
我从Hank Arnold在关于映射本地驱动器的讨论的建议中改编了这个。我曾猜测\myComputerName/c可能会起作用,但我不知道如何应用$.
在你尝试 “net use "命令之前,试着导航到
\computerName\c$
以确保你的'computerName'是正确的。
由于原来的PSubst有一定的局限性,而且似乎是作者总结出来的,所以我不得不根据自己的需要编写一个新的版本,修正一些问题,增加功能和灵活性。
点击这里查看PSubst第3版批处理文件 https://github.com/cyberponk/psubst
兼容Windows 7、Windows 8、Windows 10、Windows Server 2012
注:本作品无意贬低原作者,只是因为实际需要才出现的,具体如下。
-作为一名newtork管理员,我经常需要对网络硬盘进行SUBST´ing,对不同的网络用户进行摆弄。
由于不是每个人都是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 相匹配。
这里有两个例子,使用reg.exe
将所需条目添加到Run
蜂巢的HKEY_CURRENT_USER
注册表子键中。这些例子可以根据需要进行调整。以当前用户的身份打开一个不悬浮的cmd
窗口,然后粘贴上改编后的行。
最简单的用例。
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Map I" /t REG_SZ /d "subst I: \"C:\path\to\folder\"" /f
SUBST
的路径参数中嵌入了一个环境变量。
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "Map J" /t REG_EXPAND_SZ /d "subst J: \"^%DROPBOX_HOME^%\Notes\"" /f
请注意,在第二个例子中,有两个大量的字符转义。反斜杠用于包围路径参数的内部双引号,小括号用于环境变量的百分号。双引号并不总是必需的,但为了避免文件夹名包含空格的问题,建议使用双引号。