Не подключаются сетевые диски в Windows 10 после перезагрузки
В последних билдах Windows 10 встречался неприятный баг, из-за которого перестают подключаться сетевые диски после перезагрузки компьютера. После входа в систему пользователь в проводнике Windows видит красный крест на иконках всех подключенных сетевых дисков. Если в командой строке выполнить команду net use, то напротив всех подключенных дисков вы увидите статус Недоступны (Unavailable). Автоматически не переподключаются как сетевые диски, подключенные пользователем, так и диски, подключаемые через GPO.
Впервые эта проблема была обнаружена в Windows 10 1809, но она встречается и в более новых билдах, в том числе в Windows 10 2004.
Windows 10 не восстанавливает подключение к сетевым дискам
Windows 10 по какой-то причине перестает автоматически подключать сетевые диски после перезагрузки компьютера. Сетевые диски отображаются в проводнике, но подключиться к ним нельзя.
При этом в области уведомлений появляется всплывающее окно с текстом:
Could not reconnect all network drives.
Не удалось восстановить подключения ко всем сетевым дискам.
Проблема возникает как с дисками, подключенных с NAS устройств, так и с сетевыми папками на других компьютерах Windows/Linux. Этот баг впервые появился в Windows 10 1809 и по словам Microsoft исправлен обновлением KB469342 выпущенным 5 декабря 2018 года (addresses an issue that may cause mapped drives to fail to reconnect after starting and logging onto a Windows device). Но проблема встречается и в других билдах Windows 10.
Вы можете скачать и установить обновление из Microsoft Update Catalog вручную.
Также Microsoft предлагает обходное решение проблемы с восстановлением подключения к сетевым дискам (см. KB4471218 — Mapped network drive may fail to reconnect in Windows 10). Для этого при входе пользователя в систему предлагается запускать PowerShell скрипт, который должен переподключить все недоступные сетевые диски. Если сетевые диски подключаются через групповые политики, нужно изменить настройки GPO.
PowerShell скрипт для автоматического переподключения сетевых дисков
Рассмотрим, как использовать PowerShell скрипт для автоматического переподключения сетевых дисков при входе пользователя в Windows.
Откройте блокнот (notepad.exe), скопируйте в него следующий PowerShell код и сохраните файл в каталог C:\PS с именем MapDrives.ps1:
$i=3
while($True){
$error.clear()
$MappedDrives = Get-SmbMapping |where -property Status -Value Unavailable -EQ | select LocalPath,RemotePath
foreach( $MappedDrive in $MappedDrives)
{
try {
New-SmbMapping -LocalPath $MappedDrive.LocalPath -RemotePath $MappedDrive.RemotePath -Persistent $True
} catch {
Write-Host «Ошибка подключения сетевого каталога $MappedDrive.RemotePath в диск $MappedDrive.LocalPath»
}
}
$i = $i — 1
if($error.Count -eq 0 -Or $i -eq 0) {break}
Start-Sleep -Seconds 30
}
Данный скрипт выбирает все недоступные сетевые диски и пытается их переподключить в постоянном режиме (ключ Persistent).
Создайте еще один файл сценария MapDrives.cmd с кодом:
PowerShell -Command «Set-ExecutionPolicy -Scope CurrentUser Unrestricted» >> «%TEMP%\StartupLog.txt» 2>&1
PowerShell -File «%SystemDrive%\PS\MapDrives.ps1» >> «%TEMP%\StartupLog.txt» 2>&1
Данный код позволяет корректно вызвать PowerShell скрипт, описанный выше.
Вы можете поместить файл в автозагрузку пользователя, скопировав файл MapDrives.cmd в каталог %ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp.
Также вы можете создать задание планировщика, которое должно запускать файл MapDrives.cmd при входе пользователя в систему. Вы можете создать задание планировщика с помощью PowerShell или из графического интерфейса консоли планировщика Windows (Taskschd.msc).
Создайте новое задание, укажите его имя, выберите что задание должно запускаться от имени встроенной группы Пользователи (Builtin\Users).
На вкладке Триггеры выберите, что задание должно выполняться при входе в систему любого пользователя (At logon -> Any user).
На вкладке действие в поле Программа укажите путь к файлу MapDrives.cmd.
На вкладке Условие можно включить опцию Сеть -> Запускать только при подключении к следующей сети -> Любое подключение.
Перезайдите в систему или выполните перезагрузку компьютера. При входе пользователя должен запуститься PowerShell скрипт, которые пересоздаст все подключения к сетевым дискам.
Обратите внимание, что по-умолчанию сетевые диски, подключенные в привилегированном режиме недоступны в обычном и наоборот.
Подключение сетевых дисков через GPO
Если вы подключаете сетевые диски пользователям с помощью доменной GPO, то для корректного переподключения дисков нужно изменить настройки политики.
Откройте политику, подключающую диски, и в разделе User Settings -> Preferences -> Windows Settings -> Drive maps найдите вашу политику (политики) назначения сетевых дисков и измените тип действия с Update на Replace.
После обновления параметров групповых политик на клиентах при входе пользователя в систему, сетевые диски будут удалены и назначены снова.
Не подключаются сетевые диски в Windows 10 2004
Проблема с подключением сетевых дисков также наблюдается в билде Windows 10 2004. Проблема возникает с сетевыми дисками, подключенных с legacy устройств с поддержкой только протокола SMBv1 (Windows XP/2003, старые NAS устройства).
Для решения этой проблемы нужно прописать в реестре пользователя для каждого подключенного сетевого диска параметр ProviderFlags =1.
Например, если у пользователя в сессии подключен сетевой диск U:, перейдите в раздел реестра HKEY_CURRENT_USER\Network\U. Создайте параметр типа DWORD с именем ProviderFlags и значением 1.
Или выполните команду:
REG ADD «HKCU\Network\U» /v «ProviderFlags» /t REG_DWORD /d «1» /f
Настроить задержку подключения сетевых дисков в Windows через GPO
Windows может пытаться переподключить сетевые диски при входе пользователя до полноценной инициализации сетевого интерфейса. Чтобы предотвратить подключение сетевых дисков до полного включения сети, вы можете включить специальный параметр групповой политики.
Вы можете настроить этот параметр через редактор локальной групповой политики ( gpedit.msc ) или из редактора доменных GPO ( gpmc.msc ). Перейдите в раздел Computer Configuration -> Administrative Templates -> System -> Logon и включите политику Always wait for the network at computer startup and logon (Всегда ожидать инициализации сети при загрузке и входе в систему).
Перезагрузите компьютер.
Также эту проблему можно решить, если просто подождать 15 секунд после загрузки компьютера (или выхода его из режима гибернации/спящего режима), прежде чем логиниться. Этого времени будет достаточно, чтобы Windows инициализировала сеть.
Отключить уведомление “Не удалось восстановить подключение ко всем сетевым дискам”
Если ваш компьютер находится не в сети предприятия (сетевые диски не доступны по определению), и вам мешает назойливое уведомление “Не удалось восстановить подключение ко всем сетевым дискам” при каждой загрузке Windows, вы можете его отключить.
Для этого в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider нужно создать параметр типа DWORD с именем RestoreConnection и значением 0.
Не удалось восстановить подключение ко всем сетевым дискам
Доброго времени суток знатоки! Кто-то что-то слышал про ошибку «Не удалось восстановить подключение ко всем сетевым дискам». Она у меня вываливается каждый раз при загрузке операционной системы. При этом все работает нормально, без эксцессов. Думаю, что система пытается подключиться к сетевым дискам еще до полной загрузки Windows, отсюда и проблема. Можно что-то сделать? Ах да, у меня Windows 10.
- IT
- Cancel
Недавно столкнулся с этой проблемой при новой установке Windows.
Хотя при добавлении сетевого диска был поставлен флажок «Восстанавливать при входе в систему», это почему-то не помогает почти никогда.
В принципе, в домашней сети это не особо критично, ведь для восстановления подключения к сетевой шаре достаточно всего лишь кликнуть по диску (и в Win7 даже не придётся заново вводить пароль), в условиях сети предприятия, где например на сетевом диске могут храниться базы 1С, этот глюк винды может вызвать большие неприятности.
Для решения этой проблемы, некоторые видимо особо умные программисты даже пишут небольшие программки для подключения сетевых шар. Называется типа MapDrive, можете погуглить.
Я же предлагаю несколько способов решения исключительно стандартными средствами Windows, без захламления компьютера вспомогательным софтом.
Способ 1
Добавьте данные для подключения сетевого диска (имя или IP сервера, логин, пароль) в окно Панель управления\Учетные записи пользователей и семейная безопасность\Диспетчер учетных данных.
При этом можно добавить как для текущего юзера, так и для всех.
В принципе может помочь. И должно по идее. Но скорее всего не поможет
Если бы всё было так просто, этого поста просто не было бы.
Поэтому самое время перейти к следующему способу.
Способ 2
1 2 3 4 5 |
REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system] "EnableLinkedConnections"=dword:00000001 |
Надеюсь, если вы читаете этот текст, то знаете что с этим делать.
Теперь самое время перезагрузить комп (на всякий случай, потому что ключ находится в ветке HKLM
) и посмотреть помогло ли.
В комбинации с первым способом это должно помочь, и при следующей загрузке ваш сетевой диск будет подключён и доступен.
Если нет, читайте дальше.
Способ 3
Вот это сработает 100%.
Создайте BAT-файл следующего содержания и поместите ярлык в папку автозагрузки пользователя. Или в общую (для всех пользователей), но я предпочитаю этого не делать.
1 |
net use Z: \\Server\share PASSWORD /user:USER /persistent:yes
|
ключ /persistent:yes
по действию аналогичен флажку, о котором я говорил в самом начале.
Или же можно прописать эту команду в раздел реестра HKCU\Software\Microsoft\Windows\CurrentV
Но если дисков нужно подключить несколько, проще сделать bat’ник.
На сегодня всё, надеюсь кому-нибудь это сэкономит время.
Originally published at Shumaher’s_Blog. You can comment here or there.
Проблема:
На OS MS Windows 10 (начиная с версии 1809) и MS Windows 11 после перезагрузки не подключаются сетевые диски.
Так, если при работе подключить сетевой диск, то в этой сессии все будет работать нормально, но после перезагрузки этот диск будет отображаться в проводнике как отключенный (с красным крестиком), и подключиться к нему будет невозможно. Кроме того, все операции, связанные с проводником или сетевыми ресурсами сервера, к которому подключается диск, могут приводить к зависанию проводника Explorer. Через некоторое время может отобразиться сообщение:
Could not reconnect all network drives
Не удалось восстановить подключения ко всем сетевым дискам
Решение 1:
По словам Microsoft, обновление KB469342 выпущенное 5 декабря 2018 года исправляет этот баг:
Устранена проблема, из-за которой мог происходить сбой повторного подключения сопоставленных дисков после включения устройства с Windows и входа в него.
Addresses an issue that may cause mapped drives to fail to reconnect after starting and logging onto a Windows device.
Обновление можно скачать непосредственно из каталога обновлений Windows.
Однако, проблема встречается в других сборках Windows 10 и в Windows 11. Для исправления в этих случаях, Microsoft предлагает альтернативное решение KB4471218 — скрипт, автоматически переподключающий сетевые диски при входе пользователя в систему.
Решение 2:
Проблема может быть вызвана при расположении общих ресурсов на устаревших legacy устройствах (устройствах, с устаревшим ПО) с поддержкой только протокола SMBv1 (Windows XP/2003, старые NAS устройства).
В этом случае для каждого подключенного сетевого диска нужно создать в реестре по адресу HKCU\Network\имя_диска параметр типа DWORD32 с именем ProviderFlags и значением 1.
Код: Выделить всё
REG ADD "HKCU\Network\имя_диска" /v "ProviderFlags" /t REG_DWORD /d "1" /f
Все способы:
- Способ 1: Проверка связи
- Способ 2: Настройка параметров общего доступа
- Способ 3: Активация протокола SMB 1.0
- Способ 4: Создание сценариев
- Вариант 1: Создание элемента автозагрузки
- Вариант 2: «Планировщик задач»
- Способ 5: «Редактор реестра»
- Способ 6: Сброс сети
- Вопросы и ответы: 1
Способ 1: Проверка связи
В первую очередь проверьте, есть ли связь между компьютерами, находящимися в одной сети. Для этого нужно узнать IP-адрес удаленного устройства. В Windows 10 существует несколько способов посмотреть данные, которые нужно переписать или запомнить, поскольку они понадобятся для проверки связи. Ознакомьтесь с нашей инструкцией и подберите для себя подходящий вариант.
Подробнее: Определение IP-адреса компьютера в Windows 10
Как только IP-адрес удаленного компьютера будет известен, на локальном устройстве воспользуйтесь встроенной утилитой для проверки доступности ПК:
- Откройте консоль «Командная строка», отыскав ее через системный поиск.
- В окне введите
ping
, а после команды IP-адрес удаленного компьютера.
Остается дождаться окончания проверки. Если все пакеты прошли успешно, значит, с подключением все в порядке, и можно смело приступать к настройке сетевого диска удаленного компьютера.
Подробнее: Подключение сетевого диска в Windows 10
Если были обнаружены потери, причиной неудачного подключения сетевого диска может стать как физическое повреждение коммуникаций, так и сбои в работе системы или локальной сети.
Не забудьте проверить, находятся ли оба устройства в одной локальной сети. Если нет, то подключиться к сетевому диску не будет возможности.
Читайте также: Создание локальной сети через Wi-Fi-роутер
Способ 2: Настройка параметров общего доступа
Вероятно, проблема с подключением сетевого диска связана с неправильными настройками общего доступа на компьютере. Во-первых, для удаленного компьютера может быть отключено сетевое обнаружение, а во-вторых, доступ защищен паролем. Попробуем исправить обе эти ситуации:
- Откройте «Панель управления», найдя это приложение через поиск по «Пуску».
- В выпадающем списке «Просмотр» выберите «Крупные значки», затем перейдите в раздел «Центр управления сетями и общим доступом».
- Кликните по строке «Изменить дополнительные параметры общего доступа» на левой панели открывшегося окна.
- Разверните текущий профиль, если этого не произошло автоматически. Затем в списке функций отметьте пункт «Включить сетевое обнаружение».
- Перейдите во «Все сети» и выберите «Отключить общий доступ с парольной защитой». Сохраните изменения, нажав на соответствующую кнопку внизу.
Все это нужно проделать на том компьютере, на котором есть папка с общим доступом. Как правило, эти действия выполняются в первую очередь при создании сетевого диска, но вы могли пропустить этот этап или же настройки сбились по одной из различных причин.
Способ 3: Активация протокола SMB 1.0
Если доступ к общим папкам осуществляется через основанный на технологии клиент-сервер сетевой протокол SMB, его потребуется активировать. В «десятке» не используется устаревший компонент версии 1.0, но иногда его включение помогает решить проблему с подключением сетевого диска:
- Через «Панель управления» перейдите в раздел «Программы и компоненты».
- На панели слева щелкните по строке «Включение или отключение компонентов Windows».
- В открывшемся списке отыщите «Поддержка общего доступа к файлам SMB 1.0/CIFS» и отметьте этот пункт, нажав на чекбокс. Разверните список компонента и убедитесь, что у пункта «Клиент SMB 1.0/CIFS» также стоит галочка. Кликните по кнопке «ОК», чтобы сохранить настройки.
После того как вы активировали сетевой компонент, попробуйте снова подключиться к удаленному диску.
Способ 4: Создание сценариев
Следующий метод предполагает создание сценариев, которые автоматически перезапускают все сетевые диски при входе в систему. Есть несколько вариантов использовать созданные вручную скрипты. Сценарий для выполнения через консоль Windows PowerShell выглядит так:
- Запустите встроенный редактор «Блокнот», отыскав его в главном меню через поисковую строку.
- В текстовое поле вставьте
$ i = 3
while ($ True) {
$ Error.clear ()
$ MappedDrives = Get-SmbMapping | where -property Status -Value Unavailable -EQ | select LocalPath, RemotePath
foreach ($ MappedDrive в $ MappedDrives)
{
try {
New-SmbMapping -LocalPath $ MappedDrive.LocalPath -RemotePath $ MappedDrive.RemotePath -Persistent $ True
} catch {
Write-Host "Ошибка подключения сетевого каталога $ MappedDrive.RemotePath с $ MappedDrive.LocalPath"
}
}
$ i = $ i - 1
if ($ error.Count -eq 0 -Or $ i -eq 0) {break}
Start-Sleep -Seconds 30
} - Нажмите на вкладку «Файл» и выберите пункт «Сохранить как».
- В новом окне в строке «Тип файла» выберите «Все файлы», задайте имя скрипту «MapDrives.ps1» и сохраните его, кликнув по соответствующей кнопке.
Созданный скрипт собирает все сетевые диски, которые недоступны, для того, чтобы их переподключать в постоянном режиме.
Теперь создадим сценарий для «Командной строки». Это делается аналогичным образом – через «Блокнот», но в окне редактора нужно вставить такой код:
PowerShell -Command "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" >> "% TEMP% \ StartupLog.txt" 2> & 1
PowerShell -File "% SystemDrive% \ Scripts \ MapDrives.ps1" >> "% TEMP% \ StartupLog.txt" 2> & 1
После чего сохранить документ как «MapDrives.cmd».
Вариант 1: Создание элемента автозагрузки
Далее нужно переместить скрипт в каталог на системном диске, где хранятся элементы автозагрузки. Метод сработает при условии, что при входе в систему сразу же автоматически подключается интернет.
- Откройте «Проводник» и в адресную строку вставьте
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
. - Скопируйте и вставьте либо перетащите с рабочего стола один из созданных скриптов в папку с элементами автозагрузки.
В системной папке с временными данными будет создан журнал «StartupLog.txt», после чего выйдите из системы и снова войдите. Таким образом, сетевые диски будут автоматически переподключены.
Вариант 2: «Планировщик задач»
Также есть вариант создать запланированное задание, которое будет выполняться после того, как вы зайдете в систему. Причем, в отличие от предыдущего способа с автозапуском, задача начнет выполняться после подключения к сети. На примере сценария для PowerShell разберем, как это сделать:
- Запустите встроенное средство «Планировщик заданий» через строку системного поиска.
- Кликните по вкладке «Действие» и выберите «Создать задачу».
- На вкладке «Общие» нажмите на кнопку «Изменить» в пункте с выбором учетной записи пользователя, если в строке нет никаких сведений.
- В новом окне добавьте локального пользователя или группу и сохраните настройки.
- В предыдущем окне отметьте пункт «Выполнять с наивысшими правами».
- Откройте вкладку «Триггеры» и нажмите на кнопку «Создать».
- В выпадающем списке «Начать задачу» выберите «При входе в систему». Кликните по кнопке «ОК» внизу.
- Переходите в раздел «Действия», затем — к созданию нового действия.
- В текстовом поле «Программа или сценарий» введите
Powershell.exe
. Ниже, в строке «Добавить аргументы», вставьте-windowsstyle hidden -command. \ MapDrives.ps1 >>% TEMP% \ StartupLog.txt 2> & 1
, а в «Рабочая папка» — местоположение файла сценария. Сохраните параметры действия. - Выберите вкладку «Условия» в окне создания задачи и в блоке «Сеть» поставьте галочку у пункта «Запускать только при подключении к следующей сети», затем из выпадающего меню выберите «Любое подключение». Кликните по кнопке подтверждения, чтобы завершить создание нового задания.
Теперь можно перезагружать компьютер, чтобы «Планировщик заданий» начал работать после повторного входа в систему.
То же самое можно проделать и со скриптом для «Командной строки», указав путь к нему и выбрав соответствующую программу для запуска.
Читайте также: Запуск «Планировщика заданий» в ОС Windows 10
Способ 5: «Редактор реестра»
Можно попробовать процессам, которые работают с правами администратора, предоставить доступ к сетевым ресурсам компьютера. Параметры, связанные с настройками безопасностями, можно изменить вручную через «Редактор реестра». Этот способ срабатывает не всегда, но если ничего больше не помогло, то стоит его попробовать.
- Одновременно нажмите клавиши «Win + R», затем в поле появившегося окна введите команду
regedit
и нажмите на кнопку «ОК». - Разверните ветку
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
в «Редакторе реестра». В подразделе «System» нужно создать новый параметр. Для этого кликните по свободной области главной части окна правой кнопкой мыши, наведите курсор на пункт «Создать», затем выберите «Параметр DWORD». - Задайте ему имя «EnableLinkedConnections» и дважды кликните по нему ЛКМ, чтобы перейти к настройке.
- В строке «Значение» введите «1» и нажмите на «ОК».
Редко, но бывает так, что подраздела «System» по указанному пути в системном реестре нет. В этом случае потребуется вручную его создать в предыдущей папке «Policies» таким же образом – через контекстное меню, а потом использовать инструкцию выше.
Читайте также: Способы открыть «Редактор реестра» в Windows 10
Способ 6: Сброс сети
В крайнем случае можно сбросить все сетевые настройки к значениям по умолчанию. Если ошибка связана с некорректными параметрами сети, то после процедуры они будут сброшены по умолчанию, что может позволить осуществить подключение к удаленному диску.
Читайте также: Подключение сетевого диска в Windows 10
- Нажмите на кнопку «Пуск» и выберите «Параметры».
- В новом окне перейдите в раздел «Сеть и Интернет».
- Оставаясь на вкладке «Состояние», отыщите строку «Сброс сети» и нажмите на нее.
- Кликните по кнопке «Сбросить сейчас».
Есть еще один способ быстро сбросить все сетевые настройки – использовать «Командную строку». Запустите консоль от имени администратора и выполните команду netsh winsock reset
, нажав на клавишу ввода – «Enter» — после нее.
Читайте также: Запуск «Командной строки» от имени администратора в Windows 10
Наша группа в TelegramПолезные советы и помощь