Удобство сетевого диска понимаешь не сразу, а в тот момент, когда он вдруг исчезает. Пользователь привык, что папка с общими документами живёт под привычной буквой, открывается двумя кликами и всегда на месте. И вот после перезагрузки буква пропала, документы недоступны, работа встала, а в поддержку летит тревожное сообщение. Корень почти всегда один: диск подключили на скорую руку, без оглядки на то, переживёт ли это подключение перезапуск и спросит ли система пароль в самый неподходящий момент.
Между разовым подключением и по-настоящему надёжным автоматическим монтированием лежит пропасть из нескольких тонких настроек. Правильно собранный сетевой диск встаёт на место сам при каждом входе, не дёргает человека запросом пароля и спокойно переживает перезагрузки. Собранный наспех живёт до первого перезапуска или норовит выскочить с окном учётных данных. Разница в паре ключей команды, но именно она отделяет тихую надёжность от ежедневных мелких сбоев.
Почему диск пропадает после перезагрузки и при чём здесь постоянство
Чтобы строить надёжно, надо понять, отчего ломается ненадёжное. Подключение сетевого диска по умолчанию может оказаться временным, живущим лишь до конца текущего сеанса. Такой диск исправно работает, пока человек не выключил компьютер, а после перезапуска бесследно исчезает, потому что система не получила указания его запоминать. Пользователь видит пропажу и недоумевает, ведь вчера всё работало, а инструмент просто не был помечен как постоянный.
За это постоянство отвечает отдельный признак подключения. Когда диск помечен как постоянный, система запоминает его и восстанавливает при каждом следующем входе автоматически, без участия человека. Когда не помечен, подключение растворяется вместе с завершением сеанса. Любопытная деталь в том, что система запоминает последнее использованное значение этого признака, поэтому однажды задав постоянное подключение, последующие диски можно цеплять уже без явного указания, и они тоже встанут постоянными.
Базовая команда монтирования диска предельно проста и знакома почти каждому, кто работал с консолью:
net use Z: \\server\share /persistent:yes
Здесь Z это буква, под которой ресурс появится в системе, дальше идёт сетевой путь к общей папке, а ключ постоянства велит запомнить подключение между сеансами. Без последнего ключа диск рискует исчезнуть после перезагрузки, и именно его отсутствие чаще всего и стоит за жалобами на пропадающие папки. Стоит заметить, что после первого постоянного подключения дальнейшие диски можно цеплять короче, без хвоста про постоянство, ведь система уже взяла его за умолчание. Это удобно, когда сразу монтируется несколько ресурсов: достаточно явно задать постоянство один раз, и остальные диски унаследуют его сами. Правда, у медали есть и обратная сторона. Если кто-то однажды подключил временный диск, система запомнит уже это значение, и следующие подключения по умолчанию тоже окажутся временными. Поэтому в надёжных сценариях признак постоянства лучше задавать явно для каждого диска, не полагаясь на унаследованное умолчание, которое могло измениться неизвестно когда.
Учётные данные как второй камень преткновения
Постоянство решает проблему исчезновения, но остаётся вторая беда, когда ресурс требует логин и пароль, отличные от тех, под которыми работает пользователь. Тогда даже постоянный диск при каждом входе встречает человека окном ввода учётных данных, и автоматизация рассыпается. Здесь в дело вступают параметры команды, отвечающие за аутентификацию. Логин для подключения задаётся явным ключом, и тогда система знает, под кем стучаться в ресурс:
net use Z: \\server\share /user:DOMAIN\Ivanov P@ssword /persistent:yes
В такой форме логин и пароль передаются прямо в команде, что удобно для скриптов, но небезопасно, ведь пароль остаётся на виду в истории и в тексте сценария. Когда хочется, чтобы система спросила пароль интерактивно и скрыла ввод, вместо явного пароля ставят звёздочку, и тогда появляется безопасный запрос:
net use Z: \\server\share /user:DOMAIN\Ivanov * /persistent:yes
Этот вариант со звёздочкой хорош при ручной разовой настройке, когда не хочется светить пароль. Но он не годится для полностью автоматического монтирования, ведь при каждом входе будет всплывать запрос. Для настоящей автоматизации нужен способ, который сохранит учётные данные один раз и потом будет подставлять их молча.
Связка постоянства и сохранённых учётных данных для тихого монтирования
Самый надёжный рецепт автоматического диска собирается из двух частей. Сначала учётные данные для ресурса один раз сохраняются в диспетчере через утилиту cmdkey, а потом диск монтируется постоянным подключением, которое уже находит готовый пароль в хранилище и не задаёт вопросов:
cmdkey /add:server /user:DOMAIN\Ivanov /pass:P@ssword
net use Z: \\server\share /persistent:yes
В этой связке кроется вся прелесть. Первая строка кладёт пароль в защищённое хранилище раз и навсегда, вторая поднимает диск, опираясь на этот сохранённый пароль. При следующих входах система сама восстановит постоянное подключение, найдёт учётные данные в диспетчере и смонтирует диск без единого окна. Пользователь видит готовую папку под привычной буквой и даже не подозревает, какая механика отработала за кулисами.
Есть и более короткий путь через ключ сохранения учётных данных прямо в команде монтирования. Этот ключ велит системе запомнить введённые данные для последующего использования, складывая их в тот же диспетчер:
net use Z: \\server\share /user:DOMAIN\Ivanov * /savecred /persistent:yes
При первом запуске система спросит пароль, сохранит его, а дальше будет подставлять сама. Разница с предыдущим подходом скорее в стиле, чем в сути: и там, и там пароль в итоге оседает в хранилище и потом подставляется молча. Какой способ выбрать, зависит от вкуса и сценария. Для скриптовой массовой настройки удобнее явная связка cmdkey и net use, для ручной разовой настройки на одной машине проще ключ сохранения.
Подводные камни множественных подключений и имён ресурсов
При работе с сетевыми дисками подстерегает коварная ловушка, о которую спотыкаются даже бывалые. К ресурсам на одном и том же сервере нельзя одновременно обращаться под разными учётными записями. Если диск к серверу уже поднят под одним пользователем, попытка подключить другую папку того же сервера под другим логином упрётся в ошибку о множественных подключениях. Система прямо сообщает, что несколько соединений к одному серверу под разными именами не допускаются.
Понимание этого ограничения экономит часы недоумения. Когда нужно работать с несколькими папками одного сервера, все они должны идти под одной учётной записью, иначе система упрётся. Если же по какой-то причине нужны именно разные учётки, придётся сначала разорвать существующее подключение к серверу, и только потом цеплять новое под другим логином. Разрыв выполняется указанием буквы диска и ключа удаления:
net use Z: /delete
Ещё одна мелкая, но раздражающая особенность касается имён, под которыми диски показываются в проводнике. Иногда система присваивает диску название, взятое будто из воздуха, или даёт одинаковые имена разным папкам одного сервера. Это поведение растёт из того, как сетевые ресурсы отдают свои метки, и напрямую командой монтирования не управляется. Знание об этой причуде хотя бы избавляет от бесплодных попыток исправить имя там, где оно задаётся не на стороне клиента.
Для проверки текущего состояния всех подключений всегда выручает вызов команды без параметров, который покажет список смонтированных дисков с их путями:
net use
Этот простой вывод служит универсальной точкой контроля. По нему видно, какие диски подняты, постоянные они или временные, и куда ведут. При диагностике пропавшего или задвоившегося диска именно с этого вывода и стоит начинать, чтобы понять, что система думает о текущем раскладе подключений, прежде чем что-то менять.
Где разворачивать команды, чтобы диск вставал у всех и сам
Собрать рабочую связку на одной машине это полдела. Настоящая ценность раскрывается, когда диск автоматически появляется у целого отдела без обхода каждого рабочего места. Для этого команды монтирования складывают в сценарий, который выполняется при входе пользователя в систему. В доменной сети такой сценарий обычно раздаётся через групповые политики, и тогда нужные диски встают у всех сотрудников одинаково, без ручной возни администратора на каждом компьютере.
Логика разворачивания проста и красива. Один раз собранный скрипт со всеми нужными подключениями и сохранением учётных данных назначается группе пользователей, и дальше система сама заботится о том, чтобы при каждом входе у человека оказались все положенные ему сетевые диски. Новый сотрудник, впервые залогинившись, сразу получает готовый набор папок, будто кто-то заранее всё ему настроил. По сути так и есть, только настройка эта живёт в политике, а не в памяти администратора.
Стоит помнить о порядке действий в таком сценарии. Сохранение учётных данных через cmdkey должно идти до команды монтирования, иначе диск попытается подняться раньше, чем в хранилище появится нужный пароль, и встретит пользователя окном запроса. Эта простая последовательность, сначала ключи, потом двери, лежит в основе бесшовного автоматического монтирования. Нарушив её, легко получить ровно ту проблему с выскакивающими окнами, ради избавления от которой всё и затевалось.
Корректное отключение и обновление диска без перезагрузки
Жизнь сетевого диска не сводится к одному лишь подключению. Рано или поздно ресурс переезжает на новый сервер, меняется его путь или диск становится попросту не нужен, и тогда важно уметь снять подключение чисто, не оставляя за собой висящих хвостов. Адресное отключение по букве уже упоминалось, но у команды удаления есть и массовый вариант, снимающий разом все подключения через символ звёздочки:
net use * /delete
Эта команда полезна, когда нужно начать с чистого листа, например при отладке сценария входа, где старые подключения мешают увидеть результат работы новой версии скрипта. Снёс всё разом, прогнал сценарий заново, посмотрел, что встало. Правда, при интерактивном запуске система может переспросить подтверждение, ведь среди снимаемых дисков могут быть подключения с открытыми файлами, и резкий разрыв грозит потерей несохранённых данных.
Отдельная тонкость касается обновления подключения, когда ресурс переехал, а буква должна остаться прежней. Простого способа на лету перенаправить букву на новый путь нет, поэтому действуют в два шага: сначала снимают старое подключение по букве, затем поднимают новое к свежему пути под той же буквой. Для пользователя это выглядит так, будто папка просто переехала, а буква осталась родной. Если же подключение раздаётся через сценарий входа, достаточно поправить путь в самом сценарии, и при следующем входе диск встанет уже на новое место без всякого ручного вмешательства на машинах сотрудников.
Полезно понимать и поведение диска при недоступном сервере. Если в момент входа сервер не отвечает, постоянное подключение может отобразиться как отключённое, с предупреждающим значком. Это не поломка настройки, а реакция на временную недоступность ресурса. Стоит серверу вернуться в строй и пользователю открыть такой диск, как подключение восстановится само. Знание об этом избавляет от лишней паники, когда после сетевого сбоя диски на минуту показываются перечёркнутыми, а потом оживают сами собой.
Надёжный сетевой диск это маленький, но показательный пример того, как пара продуманных деталей превращает хрупкую конструкцию в незаметно работающий механизм. Пользователю не нужно знать про постоянство подключений, сохранённые учётные данные и порядок команд в сценарии. Ему нужно, чтобы привычная папка просто была на месте каждое утро, без вопросов и сбоев. А вся эта внутренняя механика как раз и существует для того, чтобы человек о ней никогда не задумывался, спокойно занимаясь своей работой.