Zamapowany dysk sieciowy może zakończyć się niepowodzeniem w Windows 10, wersja 1809
Ten artykuł zawiera obejście problemu polegającego na tym, że ponowne nawiązanie połączenia z zamapowanym dyskiem sieciowym może zakończyć się niepowodzeniem w Windows 10, wersja 1809.
Dotyczy: Windows 10, wersja 1809
Oryginalny numer KB: 4471218
Symptomy
W Windows 10, wersja 1809 występują następujące problemy:
- W Eksploratorze Windows czerwony znak X jest wyświetlany na zamapowanych dyskach sieciowych.
- Zamapowane dyski sieciowe są wyświetlane jako niedostępne po uruchomieniu
net use
polecenia w wierszu polecenia. - W obszarze powiadomień zostanie wyświetlony następujący komunikat:
Nie można ponownie połączyć wszystkich dysków sieciowych.
Obejście problemu
Firma Microsoft pracuje nad rozwiązaniem i szacuje, że rozwiązanie będzie dostępne do końca listopada 2018 r. Monitoruj zamapowany temat dysku w 4464619 Windows 10 1809 Update History KB. Obecnie można obejść ten problem, uruchamiając skrypty, aby automatycznie ponownie połączyć zamapowany dysk sieciowy podczas logowania się na urządzeniu. W tym celu utwórz dwa pliki skryptów, a następnie w razie potrzeby użyj jednego z obejść.
Tworzenie pliku skryptu o nazwie MapDrives.cmd
Plik powinien być uruchamiany w regularnym wierszu polecenia, ale nie w wierszu polecenia z podwyższonym poziomem uprawnień, ponieważ powinien być uruchamiany z tym samym uprawnieniem co Eksplorator Windows:
PowerShell -Command "Set-ExecutionPolicy -Scope CurrentUser Unrestricted" >> "%TEMP%\StartupLog.txt" 2>&1
PowerShell -File "%SystemDrive%\Scripts\MapDrives.ps1" >> "%TEMP%\StartupLog.txt" 2>&1
Tworzenie pliku skryptu o nazwie MapDrives.ps1
Plik powinien być uruchamiany w regularnym wierszu polecenia, ale nie w wierszu polecenia z podwyższonym poziomem uprawnień, ponieważ powinien być uruchamiany z tym samym uprawnieniem co Eksplorator 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
}
Obejścia
Wszystkie obejścia powinny być wykonywane w standardowym kontekście zabezpieczeń użytkownika. Wykonywanie skryptów w kontekście zabezpieczeń z podwyższonym poziomem uprawnień uniemożliwi udostępnianie zamapowanych dyskó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 podczas logowania. Jeśli urządzenie nie nawiązało połączenia sieciowego do czasu logowania, skrypt uruchamiania nie będzie automatycznie ponownie łączyć dysków sieciowych.
- Skopiuj plik skryptu (MapDrives.cmd) do następującej lokalizacji:
%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp - Skopiuj plik skryptu (MapDrives.ps1) do następującej lokalizacji:
%SystemDrive%\Scripts\ - Plik dziennika (StartupLog.txt) zostanie utworzony w folderze %TEMP%\.
- Wyloguj się, a następnie zaloguj się ponownie na urządzeniu, aby otworzyć zamapowane dyski.
Obejście 2: Tworzenie zaplanowanego zadania
Uwaga
Okno programu PowerShell miga po uruchomieniu zaplanowanego zadania.
- Skopiuj plik skryptu MapDrives.ps1 do następującej lokalizacji:
%SystemDrive%\Scripts\ - W obszarze Harmonogram zadań wybierz pozycję Akcja>Utwórz zadanie.
- Na karcie Ogólne w oknie dialogowym Tworzenie zadania wpisz nazwę (na przykład mapowanie dysków sieciowych) i opis zadania.
- Wybierz pozycję Zmień użytkownika lub grupę, wybierz lokalnego użytkownika lub grupę (na przykład LocalComputer\Users), a następnie wybierz przycisk OK.
- Na karcie Wyzwalacze wybierz pozycję Nowy, a następnie wybierz pozycję Przy logowaniu w polu Rozpocznij zadanie .
- Na karcie Akcje wybierz pozycję Nowy, a następnie wybierz pozycję Uruchom program dla pola Akcja .
- Wpisz Powershell.exe dla pola Program/skrypt .
- W polu Dodaj argumenty (opcjonalnie) wpisz następujące polecenie:
-windowstyle hidden -command .\MapDrives.ps1 >> %TEMP%\StartupLog.txt 2>&1 - W polu Start in (opcjonalnie) wpisz lokalizację (%SystemDrive%\Scripts\) pliku skryptu.
- Na karcie Warunki wybierz opcję Uruchom tylko wtedy, gdy dostępne jest następujące połączenie sieciowe , wybierz pozycję Dowolne połączenie, a następnie wybierz przycisk OK.
- Wyloguj się, a następnie zaloguj się ponownie na urządzeniu, aby uruchomić zaplanowane zadanie.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla