Soubory EXE nefungují při spuštění ze síťových složek v systému Windows 10 1803

Uživatelé si stěžovali, že po aktualizaci na Windows 10 1803 (dubnová aktualizace) na jejich počítačích došlo k potížím se spouštěním aplikací, jejichž spustitelné exe soubory jsou umístěny v síťových složkách na souborovém serveru Windows a samostatném úložišti NAS.

Problém se projevuje různými způsoby. Některé síťové aplikace se jednoduše nespustí ze síťových složek (Aplikace nemohla správně spustit chyby (0xc00000ba), Výjimka vyvolána na 0x00007FFA2B86624E, 0xC0000005: Místo čtení porušení narušení 0x0000000000000000), zatímco jiné spouštění normálně, ale všechny související funkce nefungují s vytvořením veškerých síťových připojení k jiným serverům. Zejména připojení ke vzdálenému serveru SQL nefunguje prostřednictvím připojení ODBC i ADO SQL, klient se nepřipojí k databázi na serveru Oracle.

Při navazování připojení k serveru SQL došlo k chybě související se sítí nebo konkrétní instancí. Server nebyl nalezen nebo nebyl přístupný. Ověřte, zda je název instance správný a zda je SQL Server nakonfigurován tak, aby umožňoval vzdálená připojení. (poskytovatel: Síťová rozhraní SQL, chyba: 26 - Chyba při určování serveru / instance).

Problém je pozorován jak při spouštění souborů EXE ze síťových složek na cestě UNC (\\ msk-server \ share1 \ app.exe), tak při spouštění souborů ze síťových složek připojených k disku pomocí NET USE.

Současně se stejné programy v síťových složkách v systému Windows 10 1709 a Windows Server 2016 spouští normálně. Tyto programy fungují také v systému Windows 10 1803, pokud zkopírujete spustitelný soubor ze síťového adresáře na místní jednotku. Pokud odeberete Windows 10 1803 z počítače, problém také zmizí.

Zdá se, že Windows 10 1803 blokuje síťový přístup k programům spuštěným ze síťových složek, zatímco samotné programy se při pokusu o otevření síťového soketu zhroutí. Problém je zčásti podobný problému s deaktivací nezabezpečených přihlášení hosta v systému Windows 10 1709, toto řešení však nepomohlo.

Jeden z uživatelů našel následující řešení: Pokud nastavíte režim kompatibility se systémem Windows 8 ve vlastnostech souboru exe, začnou síťové programy fungovat!

Jako trvalé řešení je však použití nesprávné. Chtěl bych najít příčinu problému.

Při diagnostice problému se ukázalo, že ve všech případech byla zařízení, která podporují protokol pro přístup k souborům, použita jako síťová složka SMB v1 (na uživatelských pracovních stanicích v systému Windows 10 komponenta pro přístup k síťovým složkám pomocí protokolu SMB 1.0 - byl povolen klient SMB 1.0 / CIFS).

V případě, že přesunete spustitelné soubory do systému Windows Server 2012 R2 / 2016, ve kterém je zakázán protokol SMB 1, spustitelné soubory se začnou správně spouštět!

I.e. Aktualizace systému Windows 10 1803 neumožňuje z bezpečnostních důvodů otevírat síťová připojení programy spuštěné ze síťových složek přístupných pouze prostřednictvím protokolu SMBv1. Jako síťové složky musíte použít zařízení, která podporují SMBv2 nebo SMBv3.

Poznámka:. Připomeňme, že když klient a server interagují prostřednictvím protokolu SMB, je pro interakci vybrána maximální verze protokolu, která je současně podporována klientem i serverem (viz článek Verze protokolu SMB ve Windows). Verze SMB, se kterou se klient připojuje k souborovému serveru, můžete určit pomocí příkazu PowerShell Získejte spojení.

Zkontrolujte, zda je na serveru povolen protokol SMBv2 nebo SMBv3 pomocí příkazu:

Get-SmbServerConfiguration | Vyberte EnableSMB2Protocol

Pokud je SMBv2 zakázán, můžete jej povolit:

Set-SmbServerConfiguration -EnableSMB2Protocol $ true

Jak se ukázalo, NAS používaný v úložišti také podporuje sdílení souborů pouze prostřednictvím protokolu SMBv1, takže jej nelze použít ke spuštění programů na pracovních stanicích upgradovaných na Windows 10 1803.

Používáte-li jako souborový server Windows Server 2003, je v této verzi podporována pouze verze SMBv1. Proto nemůžete tento OS použít jako souborový server, když k němu přistupujete z Windows 10 1803 a vyšších.

Také pokud používáte Linux se Sambou jako souborovým serverem, abyste deaktivovali SMB1, potřebujete v konfiguračním souboru smb.conf v sekci [globální] přidat řádek min protokol = SMB2 a restartujte sambu.