Не работают EXE файлы при запуске из сетевых папок в Windows 10 1803

Пользователи стали жаловаться, что после обновления до Windows 10 1803 (April Update) на их компьютерах возникла проблема с запуском приложений, исполняемые exe файлы которых расположены в сетевых папках на файловом Windows сервере и отдельном NAS хранилище.

Проблема проявляется по-разному. Некоторые сетевые приложения просто не запускаются из сетевых папок (ошибки The application was unable to start correctly (0xc00000ba), Exception thrown at 0x00007FFA2B86624E, 0xC0000005: Access violation reading location 0x0000000000000000), а другие запускаются нормально, но в них не работает весь функционал, связанный с установкой любых сетевых соединений с другими серверами. В частности, не работает подключение к удалённому серверу SQL как через ODBC, так и ADO SQL подключение, не подключается клиент также и к БД на Oracle.

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 — Error Locating Server/Instance Specified).

Проблема наблюдается как при запуске EXE файлов из сетевых папок по UNC пути (\\msk-server\share1\app.exe), так и при запуске файлов из сетевых папок, смонтированных в диск с помощью NET USE.

При этом те же самые программы в сетевых папках в Windows 10 1709 и Windows Server 2016 запускаются нормально. Также эти программы работают и в Windows 10 1803, если скопировать исполняемый файл из сетевого каталога на локальный диск. Если удалить с компьютера Windows 10 1803, то проблема также пропадает.

Такое ощущение, что Windows 10 1803 блокирует сетевой доступ программам, запущенных из сетевых папок, а сами программы при этом падают при попытке открыть сетевой сокет. Проблема отчасти схожа с проблемой отключения небезопасных гостевых входов в Windows 10 1709, однако это решение не помогло.

Один из пользователей нашел следующее обходное решение: если в свойствах exe файла выставить режим совместимости с Windows 8, то сетевые программы начинают работать!

режим совместимости с windows 8 для программ в сетевой папке

Однако, как постоянное решение его использовать неправильно. Хотелось бы найти причину проблемы.

В процессе диагностики проблемы оказалось, что во всех случаях в качестве сетевой папки использовались устройства, которые поддерживают протокол доступа к файлам SMB v1 (на рабочих станциях пользователе в Windows 10 был включен компонент для доступа к сетевым папкам по протоколу SMB 1.0 — SMB 1.0/CIFS Client).

SMB 1.0 - CIFS клиент включен в Windows 10

В том случае, если переместить исполняемый файлы на Windows Server 2012 R2 / 2016, на которых отключен протокол SMB 1, исполняемые файлы начинают запускаться корректно!

Т.е. Windows 10 update 1803 из соображений безопасности не разрешает открывать сетевые подключения программам, запущенным из сетевых папок, которые доступны только по протоколу SMBv1. В качестве сетевых папок нужно использовать устройства с поддержкой SMBv2 или SMBv3.

Примечание. Напомним, что при взаимодействии клиента и сервера по протоколу SMB для взаимодействия выбирается максимальная версия протокола, которая одновременно поддерживается и клиентом и сервером (см. статью Версии протокола SMB в Windows). Вы можете определить версию SMB, с помощью которой ваш клиент подключается к файловому серверу можн помощью команды PowerShell Get-SmbConnection.

Get-SmbConnection проверить используемую версию SMB

Проверьте, включен ли SMBv2 или SMBv3 на вашем сервере с помощью команды:

Get-SmbServerConfiguration | Select EnableSMB2Protocol

Get-SmbServerConfiguration | Select EnableSMB2Protocol

Если SMBv2 отключен, его можно включить:

Set-SmbServerConfiguration -EnableSMB2Protocol $true

Как оказалось, используемое NAS хранилище также поддерживает общий доступ к файлам только по протоколу SMBv1, таким образом его нельзя использоваться для запуска программ на рабочих станциях, обновленных до Windows 10 1803.

В том случае, если вы используете в качестве файлового сервера Windows Server 2003, то в этой версии поддерживается только версия SMBv1. Соответственно, вы не можете использовать эту ОС как файловый сервер при доступе к нему с Windows 10 1803 и выше.

Также если вы используете в качестве файлового сервера Linux с Samba, чтобы отключить SMB1, нужно в файле конфигурации smb.conf в секции [global] добавить строку min protocol = SMB2 и перезапустить Samba.


Предыдущая статья Следующая статья


Комментариев: 7 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)