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/#Inconstancy

Incononstancy

Однако перезагрузка системы уничтожает виртуальный диск. Что делать? Диск можно создать после запуска. Но что делать, когда диск необходим на ранних стадиях запуска? Например, запустить службы? Существует возможность запуска виртуального диска из системного реестра:

REGEDIT4 

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

Достаточно создать текстовый файл с расширением .REG и запустить его. При следующем запуске системы виртуальный диск будет существовать при входе в систему. Необходимо определить имя диска и путь к нему. Обратите внимание, что каждый обратный слеш в пути удваивается.

В Windows вы можете запустить редактор реестра следующим образом:

  1. Запустите “Run… (или нажмите Win+R)
  2. Введите: regedit
  3. В Windows Vista и выше появится окно UAC, нажмите кнопку "Yes”.
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 mapping устойчивым при перезагрузках?”. Не используйте subst… (вставьте соответствующие ‘computerName’ и ‘pathName’):

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

Я адаптировал это из предложения Хэнка Арнольда на этом обсуждении отображения локальных дисков . Я догадался, что \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

Note: Эта работа не претендует на размывание оригинального автора и появилась только из-за реальной необходимости, как показано ниже:

  • Как ньюторк-администратор, у меня есть постоянная необходимость в сетевых дисках SUBST и работе с различными сетевыми пользователями.

  • Так как не все являются экспертами по 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 Registry в улье 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

Обратите внимание, что во втором примере экранирования символов происходит дважды. Обратные слеши для внутренних двойных кавычек, которые окружают аргумент path, и заботятся о знаках переменной окружения в процентах. Двойные кавычки не всегда нужны, но чтобы избежать проблем с именами папок, содержащих пробелы, их рекомендуется использовать.

Похожие вопросы

3
19
10
28
8