Вопрос Как сделать отображение SUBST постоянным при перезагрузке?


Имеет ли Windows (XP или более поздняя версия) встроенный способ создания устойчивых сопоставлений дисков, таких как созданные SUBST? Я нашел сторонний инструмент psubst, Есть ли способ сделать это без сторонних инструментов?


155
2017-08-24 22:53


происхождения


Наверное, иначе программа не понадобится ... - Ivo Flipse♦
Это возможно, потому что psubst это просто файл .bat, который подключается к реестру. Подробнее см. В ответе @ davr. - Scott Stafford
Предостережение из статьи в Википедии в принятом ответе:Начиная с Windows Vista, удаленные файлы немедленно удаляются навсегда и не перемещаются в «Корзину». До Windows Vista (например, в Windows XP) файлы из замещенных «дисков» были перемещены в корзину при их удалении." - JMD
@IvoFlipse, это хорошее предположение в целом, но в этом случае это просто неправильно. «Сторонний инструмент» - это командный файл на 150 строк, который обеспечивает приятный кли для изменения реестра и очистки ввода в соответствии с subst's придирчивые трейлинг-косые правила, но это просто симпатичная обертка, Вы можете сделать это без программы, а README для psubst объясняет, как. Или, см. ответ davr ниже где он цитирует psubst README. - alexanderbird


ответы:


Что ж Википедия упоминает:

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 вы можете запустить редактор реестра следующим образом:

  1. Начало »Выполнить ... (или ударил Выиграть+р)
  2. Тип: regedit
  3. В Windows Vista и выше появится UAC, нажмите "Да",

132
2017-08-24 23:04



Приятно знать, хотя я не использую subst больше. Но в то время, когда я это делал, я просто использовал пакетный файл, который сидел в моей папке автозагрузки, которая делала эти вещи. - Joey
Это круто. (Для этого требуется перезагрузка, FYI.) Наше исходное дерево должно начинаться с буквы конкретного диска, чтобы наши PDB всегда выравнивались на разных компьютерах. Этот параметр реестра решает раздражение, которое у меня было в течение многих лет, когда под дисковый диск не был там с runas, что является большим раздражением, если вам нужно (редко) запустить Visual Studio под учетной записью администратора. - Brian Reiter
Joey: Это решение, похоже, не работает под Windows 7. При запуске приложения с правами администратора замененный диск не отображается в приложении. - Dave Jarvis
Спасибо за решение. FYI, если вы введете переменную в RegEdit в интерактивном режиме, не удваивайте обратную косую черту. То есть, создайте новую строковую переменную с именем «Z:» (без кавычек) и установите значение в строку, показанную выше, за исключением одиночных обратных косых черт. - Crispy
@Адвокат дьявола, \?? является виртуальным каталогом в пространстве имен диспетчера объектов NT. Сначала он проверяет DOS-устройства сеанса входа в систему (действительно, устройства DOS являются символическими ссылками на устройства NT, обычно расположенные в \Device), а затем \Global?? DOS. В WinObj вы найдете устройства сеанса входа в систему \Sessions\0\DosDevices\[logon ID], Обратите внимание, что устройства сеанса входа в систему отслеживаются в сеансе 0 (услуги) для каждого идентификатора входа LSA. Они не коррелируют с сеансами рабочего стола. Вот почему, если вы сопоставляете диск как ограниченный администратор, он не существует при повышении; это другой вход в систему. - eryksun


Установка на 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


71
2018-02-24 17:38



+1 Показывает, как выполнять несколько сопоставлений в одном файле reg. :-) - megaflop
+1 для удобства этого и объясняет, почему HKEY_CURRENT_USER. :) - CAD bloke
+1 для показа очень элегантного способа автоматического выполнения этого без пакета в папке автозагрузки - dkellner
Также можно сделать это из командной строки (с сервера XP / Windows 2000): reg add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "F Drive" /d "subst F: D:\x\db"  NB \ требуется только экранирование, если оно является последним символом команды subst, например. когда целью является корневой каталог: "subst F: D:\\"; один \ будет интерпретирован как ускользающий от "следуя за ним. - stevek_mcc


Вы даже прочитали страницу, с которой вы связались? Вам не нужен сторонний инструмент, вы можете сделать это с помощью простой записи реестра, как подробно описано на этой странице.

Создайте текстовый файл с именем «mapdrive.reg» с этим содержимым:

REGEDIT4 

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

Затем нужно просто иметь возможность дважды щелкнуть по нему, чтобы настроить, никаких инструментов сторонних разработчиков не требуется.


40
2017-08-24 23:08



преимущество ключевого слова reg в сравнении с командным файлом заключается в том, что он устанавливает подстановочный диск перед запуском любых других команд запуска, в случае, если некоторым из них нужен подстановочный диск для работы - davr
@Ivo: Я бы назвал это здоровым страхом перед неизвестным;) - Isxek
Если вы делаете это в regedit, обязательно используйте одиночные обратные косые черты. например \ ?? \ C: \ Некоторые \ Directory - Droj


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

Во-первых, я редактировал реестр, но не смог заставить его работать. Тем не менее, я столкнулся с этой альтернативой, которая, хотя она не использует subst, отвечает за меня вопросом: «Как сделать отображение SUBST постоянным при перезагрузках?» Не используйте суб ... (вставьте соответствующие «имя_компьютера» и «имя пути»):

net use u: "\\ имя_компьютера \ c $ \ путьName" / постоянный: да

Я адаптировал это предложение Хэнка Арнольда на это обсуждение отображения локальных дисков, Я догадался, что \\ myComputerName \ c может работать, но я не знал, чтобы применить $.

Прежде чем пытаться выполнить команду «net use», попробуйте перейти к

\\ имя_компьютера \ с $
 чтобы убедиться, что у вас есть «имя_компьютера».


20
2018-01-11 23:34



Отличное решение, хотя и с двумя проблемами: 1) он не виден в локальной файловой системе, 2) разрешения ... - ashes999
если вы используете \\localhost\c$\path\to\thing он переносится через машины (или обновления, которые изменяют имя компьютера). Недостаток использования сопоставленного диска на Win7 + заключается в том, что разные политики безопасности применяются к сетевым дискам, чем локальные, а некоторые программы просто отказываются запускать подключенный диск. - matt wilkie
Он виден файловой системе, и она видна локальной файловой системе - она ​​помечена как сетевой диск, так же, как некоторые диски отмечены как съемные диски. Это не приводит к тому, что такие диски не являются частью локальной файловой системы или не видны для нее - это делает их сетевыми / съемными дисками в локальной файловой системе. - user165568
При тестировании, которое я сделал для проблемы с производительностью (пару лет назад) с использованием (локально) смонтированного сетевого диска, также медленнее, чем напрямую использовать файловую систему (или подстанцию ​​и т. Д.). Это не является огромной разницей для небольших файлов или случайного использования - не как переключение реальной сети на другой «сервер», - но это важно. - HerbM


Отбросьте пакетный файл в папке автозагрузки, которая сделает все СУБСТы, которые вы хотите сделать.


7
2017-08-24 23:02





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

Проверьте здесь пакетный файл PSubst версии 3

https://github.com/cyberponk/psubst

Совместимость с Windows 7, Windows 8, Windows 10, Windows Server 2012

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

  • Как администратор newtork у меня есть постоянная потребность в SUBST'ing сетевых дисках и возиться с разными пользователями сети.

  • Поскольку не каждый является экспертом Windows, я решил, что автоматическая высота администратора с обработкой ошибок поможет на основе коментариев, которые я прочитал через Интернет.

  • Поскольку некоторые люди боролись с порядком аргументов, я решил, что лучше всего, чтобы скрипт работал с аргументами в любом порядке.

Я не могу вспомнить о каждой дополнительной функциональности, но каждое включение было сделано исключительно по необходимости. Я разделяю код, чтобы другие не сталкивались с теми проблемами, которые у меня были. Тем самым нет намерения, кроме совместного использования и помощи.


5
2018-06-11 00:29



Пожалуйста, говоря «А», скажем «Б». У вас сикх, что у оригинального psubst есть много проблем - пожалуйста, укажите на них, если они есть. С другой стороны, psubst не заброшен. Он просто достиг предела своего развития. Оригинальный инструмент следует очень простой философии: делать что-то и делать хорошо. Он не перегружен дополнительными функциями, такими как обработка с помощью UAC и создание дополнительного vbs-кода для выполнения чего-то большего. Одна вещь может быть сделана по сравнению с исходным кодом - некоторые косметические изменения для упрощения кода и улучшения удобочитаемости. - jsxt
Измените, пожалуйста, просмотрите. UAC и vbs предназначены для автоматического повышения прав администратора. Я не согласен с комментарием «limit of development», так как все изменения, которые я сделал, должны были сделать использование еще более простым и легким после того, как я столкнулся с несколькими проблемами, используя PSUBST. Я не собираюсь критиковать оригинального автора, поэтому я не буду перечислять проблемы, но вместо этого я создал решения. Я фактически предложил добавить свои выпуски в исходную ветку github, но мне отказали, поэтому мне пришлось создать свою собственную ветку. - cyberponk
Благодарим вас за вашу быструю и подробную обратную связь. Скорее всего, мне нужно взглянуть на ваше развитие ближе. - jsxt
Моя шляпа от тебя; Я провел время в траншеях для пакетных сценариев, и я знаю, насколько это больно. Этот код выглядит неплохо. - SilverbackNet


Фактически, инструмент PSUBST объединяет два разных способа создания замещаемых дисков в Windows. Если вы хотите иметь постоянные диски между запусками, вы можете запустить этот инструмент один раз на каждый диск, который вам нужен. Другой способ - использовать метод, предложенный «davr». инструмент PSUBST просто делает то же самое, но позволяет сделать это проще.


2
2017-09-23 18:20





мне нравится Visual Subst

Делает вещи легкими


0
2017-12-14 11:09