В последних билдах Windows 10 встречался неприятный баг, из-за которого перестают подключаться сетевые диски после перезагрузки компьютера. После входа в систему пользователь в проводнике Windows видит красный крест на иконках всех подключенных сетевых дисков. Если в командой строке выполнить команду net use, то напротив всех подключенных дисков вы увидите статус Недоступны (Unavailable). Автоматически не переподключаются как сетевые диски, подключенные пользователем, так и диски, подключаемые через GPO.
Впервые эта проблема была обнаружена в Windows 10 1809, но она встречается и в более новых билдах, в том числе в Windows 10 2004.
- Windows 10 не восстанавливает подключение к сетевым дискам
- PowerShell скрипт для автоматического переподключения сетевых дисков
- Подключение сетевых дисков через GPO
- Не подключаются сетевые диски в Windows 10 2004
- Настроить задержку подключения сетевых дисков в Windows через GPO
- Отключить уведомление “Не удалось восстановить подключение ко всем сетевым дискам”
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 предлагает обходное решение проблемы с восстановлением подключения к сетевым дискам (см. 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 10? — 1809?
Покажите ваш список подключенных сетевых дисков в PowerShell:
Get-SmbMapping
Проблема с подключением сетевых дисков в Windows 10 October 2018 Update исправлена в KB4469342 (от 5 декабря 2018)
А можно вопрос по обратному? Как отключить сетевой диск для пользователя, допустим, переведённого в другую групповую политику с другим подключающимся диском? У него старый не удаляется автоматом.
Диски подключаете через GPP? В каком режиме работала политика Update/Replace?
Через cli диск не отключается?
net use x: /d
Разобрался. Ставил Update и галку «Удалять когда политика не используется». Почему-то, никак не мог догадаться, что нужно выбрать Replace 🙂
Задолбали эти мелкие уроды
Все задолбали, не только мелкие
Нифига оно не решилось, даже на сегодняшнюю дату. Мелкие тупо забили на эту проблему.
Хотя, скрипт работает, но это не дело, если честно.
Действительно в политиках временно помогает указанный способ.
Но всё же лучше поставить исправление от мелкомягких KB4469342
Опишу ещё способ, возможно, кому-то будет полезен. Заметил, что сообщение об ошибке появляется только после включения питания ПК, если же сделать перезагрузку (подключив предварительно сетевые диски) — то сообщения нет, все диски оказываются подключены. Казалось бы, в чём отличие? В том, что Windows 10 при завершении работы по умолчанию использует режим гибернации, а не полноценное выключение. Отключить данный режим можно простой командой: «powercfg -h off» (выполняется в ком. строке, запущенной от имени администратора). Проверка показала, что после отключения гибернации автоматическое подключение сетевых дисков производится успешно.
У меня и скрипт нифига не работает. Хотя билд 1903. Тупо написал старым дедовским способом батник переодключения (((
Отключаем гибернацию …
cmd запускаем от имени администратора
далее команда
powercfg /hibernate off
Мне помогло вот это решение
HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System
New Entry: Type: DWORD Name: «EnableLinkedConnections» Value: 1
Взято от сюда: https://serverfault.com/questions/768028/why-is-my-logon-script-not-mapping-any-drives
Это не безопасно (((