Pliki EXE nie działają po uruchomieniu z folderów sieciowych w systemie Windows 10 1803

Użytkownicy zaczęli narzekać, że po aktualizacji do Windows 10 1803 (Aktualizacja kwietniowa) na ich komputerach wystąpił problem z uruchomieniem aplikacji, których pliki wykonywalne exe znajdują się w folderach sieciowych na serwerze plików Windows i osobnym magazynie NAS.

Problem objawia się na różne sposoby. Niektóre aplikacje sieciowe po prostu nie uruchamiają się z folderów sieciowych (aplikacja nie mogła poprawnie uruchomić błędów (0xc00000ba), Zgłoszono wyjątek pod 0x00007FFA2B86624E, 0xC0000005: Lokalizacja odczytu naruszenia naruszenia 0x0000000000000000), podczas gdy inne uruchamiają się normalnie, ale wszystkie związane z nimi funkcje nie działają z ustanowieniem jakichkolwiek połączeń sieciowych z innymi serwerami. W szczególności połączenie ze zdalnym serwerem SQL nie działa zarówno przez połączenie ODBC, jak i ADO SQL, klient nie łączy się również z bazą danych Oracle.

Wystąpił błąd związany z siecią lub specyficzny dla instancji podczas nawiązywania połączenia z programem SQL Server. Serwer nie został znaleziony lub był niedostępny. Sprawdź, czy nazwa instancji jest poprawna i czy SQL Server jest skonfigurowany do zezwalania na połączenia zdalne. (dostawca: Interfejsy sieciowe SQL, błąd: 26 - Błąd podczas lokalizowania serwera / wystąpienia).

Problem występuje zarówno podczas uruchamiania plików EXE z folderów sieciowych na ścieżce UNC (\\ msk-server \ share1 \ app.exe), jak i podczas uruchamiania plików z folderów sieciowych zamontowanych na dysku za pomocą NET USE.

W tym samym czasie te same programy w folderach sieciowych w systemie Windows 10 1709 i Windows Server 2016 uruchamiają się normalnie. Ponadto programy te działają w systemie Windows 10 1803, jeśli skopiujesz plik wykonywalny z katalogu sieciowego na dysk lokalny. Jeśli usuniesz system Windows 10 1803 z komputera, problem również zniknie.

Wygląda na to, że Windows 10 1803 blokuje dostęp sieciowy do programów działających z folderów sieciowych, podczas gdy same programy ulegają awarii podczas próby otwarcia gniazda sieciowego. Problem jest częściowo podobny do problemu wyłączenia niepewnych loginów gości w Windows 10 1709, jednak to rozwiązanie nie pomogło.

Jeden z użytkowników znalazł następujące obejście: jeśli ustawisz tryb zgodności z Windows 8 we właściwościach pliku exe, programy sieciowe zaczną działać!

Jednak jako trwałe rozwiązanie w użyciu jest złe. Chciałbym znaleźć przyczynę problemu.

W trakcie diagnozowania problemu okazało się, że we wszystkich przypadkach urządzenia obsługujące protokół dostępu do pliku były używane jako folder sieciowy SMB v1 (na stacjach roboczych użytkowników w systemie Windows 10 włączono składnik umożliwiający dostęp do folderów sieciowych przy użyciu protokołu SMB 1.0 - klient SMB 1.0 / CIFS).

Po przeniesieniu plików wykonywalnych do systemu Windows Server 2012 R2 / 2016, na którym protokół SMB 1 jest wyłączony, pliki wykonywalne zaczynają działać poprawnie!

Tj. Aktualizacja 1803 systemu Windows 10 ze względów bezpieczeństwa nie zezwala programom uruchamianym z folderów sieciowych, które są dostępne tylko za pośrednictwem protokołu SMBv1, do otwierania połączeń sieciowych. Musisz używać urządzeń obsługujących SMBv2 lub SMBv3 jako folderów sieciowych.

Uwaga. Przypomnij sobie, że gdy klient i serwer współdziałają za pośrednictwem protokołu SMB, do interakcji wybierana jest maksymalna wersja protokołu, która jest jednocześnie obsługiwana zarówno przez klienta, jak i serwer (zobacz artykuł Wersje protokołu SMB w systemie Windows). Możesz określić wersję SMB, z którą klient łączy się z serwerem plików, za pomocą polecenia PowerShell Get-smbconnection.

Sprawdź, czy SMBv2 lub SMBv3 jest włączony na twoim serwerze za pomocą polecenia:

Get-SmbServerConfiguration | Wybierz EnableSMB2Protocol

Jeśli SMBv2 jest wyłączone, możesz je włączyć:

Set-SmbServerConfiguration -EnableSMB2Protocol $ true

Jak się okazało, NAS używany przez magazyn obsługuje również udostępnianie plików tylko za pomocą protokołu SMBv1, więc nie można go używać do uruchamiania programów na stacjach roboczych uaktualnionych do systemu Windows 10 1803.

Jeśli używasz systemu Windows Server 2003 jako serwera plików, w tej wersji obsługiwana jest tylko wersja SMBv1. W związku z tym nie można używać tego systemu operacyjnego jako serwera plików podczas uzyskiwania dostępu do niego z systemu Windows 10 1803 i nowszych.

Ponadto, jeśli używasz Linuksa z Sambą jako serwerem plików, aby wyłączyć SMB1, potrzebujesz w pliku konfiguracyjnym smb.conf w dziale [globalny] dodaj linię min protokół = SMB2 i zrestartuj sambę.