Сопоставленный сетевой диск может завершиться сбоем повторного подключения в Windows 10, версия 1809

В этой статье описывается обходное решение проблемы, из-за чего сопоставленный сетевой диск может завершиться сбоем при повторном подключении в Windows 10, версия 1809.

Область применения: Windows 10, версия 1809
Исходный номер базы знаний: 4471218

Симптомы

В Windows 10, версия 1809 возникают следующие проблемы:

  • В Windows Обозреватель на сопоставленных сетевых дисках отображается красный значок X.
  • Сопоставленные сетевые диски отображаются как Недоступные при выполнении net use команды в командной строке.
  • В области уведомлений появится следующее сообщение:

    Не удалось повторно подключить все сетевые диски.

Обходной путь

Корпорация Майкрософт работает над решением проблемы и считает, что решение будет доступно к концу ноября 2018 г. Отслеживайте раздел сопоставленного диска в 4464619 Windows 10 1809 Update History KB. В настоящее время эту проблему можно обойти, запустив скрипты для автоматического повторного подключения сопоставленного сетевого диска при входе на устройство. Для этого создайте два файла скрипта и при необходимости используйте одно из обходных решений.

Создание файла скрипта с именем MapDrives.cmd

Файл должен выполняться в обычной командной строке, но не в командной строке с повышенными привилегиями, так как он должен выполняться с той же привилегией, что и Windows Обозреватель:

PowerShell -Command "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
PowerShell -File "%SystemDrive%\Scripts\MapDrives.ps1" >> "%TEMP%\StartupLog.txt" 2>&1

Создание файла скрипта с именем MapDrives.ps1

Файл должен выполняться в обычной командной строке, но не в командной строке с повышенными привилегиями, так как он должен выполняться с той же привилегией, что и Windows Обозреватель:

$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 "There was an error mapping $MappedDrive.RemotePath to $MappedDrive.LocalPath"
        }
    }
    $i = $i - 1
    if($error.Count -eq 0 -Or $i -eq 0) {break}

    Start-Sleep -Seconds 30
}

Временные решения

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

Обходной путь 1. Создание элемента запуска

Примечание.

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

  1. Скопируйте файл скрипта (MapDrives.cmd) в следующее расположение:
    %ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp
  2. Скопируйте файл скрипта (MapDrives.ps1) в следующее расположение:
    %SystemDrive%\Scripts\
  3. Файл журнала (StartupLog.txt) будет создан в папке %TEMP%\.
  4. Выйдите из системы, а затем снова войдите на устройство, чтобы открыть сопоставленные диски.

Обходной путь 2. Создание запланированной задачи

Примечание.

Окно PowerShell мигает при выполнении запланированной задачи.

  1. Скопируйте файл скрипта MapDrives.ps1 в следующее расположение:
    %SystemDrive%\Scripts\
  2. В планировщике задач выберите Действие>Создать задачу.
  3. На вкладке Общие в диалоговом окне Создание задачи введите имя (например, сопоставить сетевые диски) и описание задачи.
  4. Выберите Изменить пользователя или группу, выберите локального пользователя или группу (например , LocalComputer\Users) и нажмите кнопку ОК.
  5. На вкладке Триггеры выберите Создать, а затем выберите При входе в поле Начать задачу .
  6. На вкладке Действия выберите Создать, а затем в поле Действие выберите Запустить программу.
  7. Введите Powershell.exe для поля Программа или скрипт .
  8. В поле Добавить аргументы (необязательно) введите следующее:
    -windowstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1
  9. В поле Запуск в (необязательно) введите расположение (%SystemDrive%\Scripts\) файла скрипта.
  10. На вкладке Условия выберите параметр Пуск, только если доступно следующее сетевое подключение , выберите Любое подключение, а затем нажмите кнопку ОК.
  11. Выйдите из системы, а затем снова войдите на устройство для выполнения запланированной задачи.