Zmapowany dysk sieciowy może nie połączyć się ponownie w systemie Windows 10, wersji 1809

Dotyczy: Windows 10, version 1809

Objawy


W systemie Windows 10, wersji 1809 występują następujące problemy:

  • W Eksploratorze Windows na zmapowanych dyskach sieciowych pojawia się czerwony znak X.
  • Zmapowane dyski sieciowe są wyświetlane jako niedostępne po uruchomieniu polecenia net use w wierszu polecenia.
  • W obszarze powiadomień wyświetli się następujący komunikat:

Obejście


Firma Microsoft pracuje nad rowiązaniem, którego można spodziewać się do końca listopada 2018 roku. Monitoruj temat zmapowanego dysku w historii aktualizacji systemu Windows 10 1809 KB 4464619. Obecnie można obejść ten problem, uruchamiając skrypty w celu automatycznego ponownego łączenia zmapowanego dysku sieciowego przy logowaniu się na urządzeniu. W tym celu należy utworzyć dwa pliki skryptu, a następnie użyć jednego z tych obejść.

Skrypty

Utwórz plik skryptu o nazwie MapDrives.cmd

Plik powinien być uruchamiany w normalnym wierszu polecenia, ale nie w wierszu polecenia z podwyższonym poziomem uprawnień, ponieważ należy go uruchamiać z poziomu tego samego uprawnienia co program Windows Explorer:

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


Utwórz plik skryptu o nazwie MapDrives.ps1

Plik powinien być uruchamiany w normalnym wierszu polecenia, ale nie w wierszu polecenia z podwyższonym poziomem uprawnień, ponieważ należy go uruchamiać z poziomu tego samego uprawnienia co program Windows Explorer:

$i=3while($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}


Metody obejścia problemu

Wszystkie obejścia muszą być wykonywane w standardowym kontekście zabezpieczeń użytkownika. Wykonywanie skryptów w kontekście podwyższonych zabezpieczeń zapobiega dostępności zmapowanych sterowników w standardowym kontekście użytkownika.

Obejście 1. Tworzenie elementu startowego

Uwaga: To obejście działa tylko w przypadku urządzenia, które ma dostęp do sieci. Jeśli urządzenie nie zostało połączone z siecią do czasu logowania, skrypt startowy nie połączy ponownie dysków sieciowych automatycznie.

  1. Skopiuj plik (MapDrives.cmd) do następującej lokalizacji:

    %ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup

  2. Skopiuj plik (MapDrives.ps1) do następującej lokalizacji:

    %SystemDrive%\Skrypty\

  3. Plik dziennika (StartupLog.txt) zostanie utworzony w folderze %TEMP%\.
  4. Wyloguj się, a następnie zaloguj się ponownie do urządzenia, aby otworzyć zmapowane dyski.


Obejście 2. Tworzenie zaplanowanego zadania

  1. Skopiuj plik MapDrives.ps1 do następującej lokalizacji:

    %SystemDrive%\Skrypty\

  2. W obszarze Harmonogram zadań wybierz opcję Akcja > Utwórz zadanie.
  3. Na karcie Ogólne w oknie dialogowym Tworzenie zadania wpisz nazwę (na przykład Mapuj napędy sieciowe) i opis zadania.
  4. Wybierz polecenie Zmień użytkownika lub grupę, wybierz użytkownika lokalnego lub grupę (np. LocalComputer\Użytkownicy), a następnie wybierz przycisk OK.
  5. Na karcie Wyzwalacze wybierz opcję Nowy, a następnie wybierz opcję Zaloguj się dla pola Rozpoczęcie zadania .
  6. Na karcie Akcje wybierz opcję Nowa, a następnie wybierz polecenie Uruchom program dla pola Akcja.
  7. Wpisz Powershell.exe dla pola programu/skryptu.
  8. W polu Dodaj argumenty (opcjonalne) wpisz następujące dane:

    -windowsstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1

  9. W polu Start (opcjonalnie) wpisz lokalizację (%SystemDrive%\Skrypty\) w pliku skryptu.

  10. Na karcie Warunki wybierz pozycję Tylko wtedy, gdy dostępne jest następujące połączenie sieciowe, wybierz pozycję Każde połączenie, a następnie wybierz przycisk OK.
  11. Wyloguj się, a następnie zaloguj ponownie do urządzenia, aby uruchomić zaplanowane zadanie.