2009-08-24 22:53:16 +0000 2009-08-24 22:53:16 +0000
183
183

如何使SUBST映射在重启时持久化?

Windows (XP或更高版本)是否有内置的方法来创建持久的驱动器映射,就像SUBST创建的那样?我发现一个第三方工具psubst。有沒有辦法在沒有第三方工具的情況下做到這一點?

答案 (8)

156
156
156
2009-08-24 23:04:22 +0000

那么 维基百科提到:

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中,你可以运行注册表编辑器,如下所示。

  1. 启动 “ 运行… (或按 Win+R)
  2. 键入: 2: regedit
  3. 在Windows Vista及以上版本中,会弹出UAC,点击"是”
80
80
80
2012-02-24 17:38:22 +0000

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

46
46
46
2009-08-24 23:08:49 +0000

在你链接的页面上有一个答案。您不需要第三方工具,您可以通过简单的注册表条目来实现,详情请见该页面。

创建一个名为'mapdrive.reg'的文本文件,内容如下。

REGEDIT4 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] 
"Z:"="\??\C:\Documents and Settings\All Users\Shared Documents"

然后就可以双击设置了,不需要第三方工具。

28
28
28
2011-01-11 23:34:33 +0000

我发现这个是因为我在寻找一个改进我的启动子脚本的方法–它们工作正常,但有时在启动时文件夹崩溃后执行,因为我的驱动器还没有映射。

首先,我编辑了注册表,但无法让它工作。然而,我确实遇到了这个替代方案,虽然它没有使用subst,但它确实为我回答了这个问题,"如何使subst映射在重启时持久化?" 不要使用subst… (插入适当的'computerName'和'pathName’):

net use u: "\computerName\c$\pathName" /persistent:yes

我从Hank Arnold在关于映射本地驱动器的讨论的建议中改编了这个。我曾猜测\myComputerName/c可能会起作用,但我不知道如何应用$.

在你尝试 “net use "命令之前,试着导航到

\computerName\c$

以确保你的'computerName'是正确的。

8
8
8
2009-08-24 23:02:00 +0000

在你的启动文件夹中放下一个批处理文件,做所有你想做的SUBST。

5
5
5
2015-06-11 00:29:36 +0000

由于原来的PSubst有一定的局限性,而且似乎是作者总结出来的,所以我不得不根据自己的需要编写一个新的版本,修正一些问题,增加功能和灵活性。

点击这里查看PSubst第3版批处理文件 https://github.com/cyberponk/psubst

兼容Windows 7、Windows 8、Windows 10、Windows Server 2012

注:本作品无意贬低原作者,只是因为实际需要才出现的,具体如下。

-作为一名newtork管理员,我经常需要对网络硬盘进行SUBST´ing,对不同的网络用户进行摆弄。

  • 由于不是每个人都是Windows专家,根据我在网上读到的评论,我认为自动管理提升与错误处理会有帮助。

  • 由于有些人对参数的顺序很不满意,我想脚本最好能以任何顺序来处理参数。

我不记得每一个新增的功能,但每一个功能的加入都是迫不得已。我分享这些代码是为了让其他人不会遇到我所遇到的麻烦。这样做除了分享和帮助之外,没有任何其他意图。

2
2
2
2019-08-27 01:09:25 +0000

我正在扩展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 相匹配。

1
1
1
2019-11-02 18:16:15 +0000

这里有两个例子,使用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

请注意,在第二个例子中,有两个大量的字符转义。反斜杠用于包围路径参数的内部双引号,小括号用于环境变量的百分号。双引号并不总是必需的,但为了避免文件夹名包含空格的问题,建议使用双引号。