We have received multiple reports of problems accessing database servers from within applications after updating Windows 10 to the latest version 1803. This same issue is being reported in DataFlex, VB6, VB.NET, Delphi, and other languages as well.
The Version 1803 issue in detail
It appears that Microsoft has introduced a bug or security feature that prevents applications started from SMB v1.x network shares from making network connections. This means that applications started from these environments can’t open a connection to a database server. In fact, they can’t perform any other types of network calls either.
This problem most commonly occurs when Windows 10 clients access a custom application from a mapped drive on Windows Server 2003. Unfortunately, there doesn’t appear to be a way to upgrade Windows Server 2003 to use a newer version of the SMB protocol. The only workaround in this environment is to copy the application executable to a local disk and run it from there.
We’ve also seen this occur where clients have a Linux-based NAS that they use via a mapped drive to start their application. On most of these devices, it’s possible to upgrade the version of the SMB protocol that is served by the NAS.
There are also some reports that in this same scenario (executable started from SMBv1 share), command line parameters are not always accessible within the application. We haven’t yet confirmed this ourselves, but we’re closely watching these issues and will update this post if and when more information becomes available.
How to fix the issue
Update 2018-05-15: There have been multiple reports that installing Avast Free Antivirus seems to fix the issue (Thanks to Michal Kavan and Petter Jönsson for figuring this out). This points to the issue being related to a Windows Defender engine update that was pushed out with Version 1803. By installing an alternate antivirus, Windows Defender is disabled, resolving the issue. This might be a stopgap measure for companies stuck on a Windows Server 2003 setup.
For newer versions of Windows Server or Linux, upgrading from SMB v1.x to SMB v2.x or v3.x also fixes the issue. There's been no official word on the reason for this change, so it's still possible that it is a bug rather than a new security measure.
Update 2018-06-04: Microsoft has acknowledged this issue. They haven’t outright called it a bug, but it is being treated as a “hot issue”. This is a term Microsoft has used for over a decade to refer to breaking issues that are not yet rectified. Most people being affected by this issue have settled on upgrading the version of SMB used on their system. Unfortunately, many are stuck on Windows Server 2003 for a variety of reasons. For these, running their software locally seems to be the easiest solution. A powershell script can be used that copies the executable locally and then runs it and cleans up after the app has closed (you’ll need to adjust the network path and executable name to make this work for you):
powershell -Command "Copy-Item '\\vmxp\test\putty.exe' $env:TEMP ; Start-Process -FilePath ($env:TEMP + '\\putty.exe') -WorkingDirectory '\\vmxp\test\' -Wait ; Remove-Item ($env:TEMP + '\\putty.exe')"
This only works where there is a single monolithic executable though, and can cause issues in some applications. YMMV. We will continue to update this blog post as new information, workarounds, or finally a solution becomes available.
Update 2018-06-13: User Murray360 has discovered how AVG/Avast! fixes the issue. Apparently it’s related a File System Filter Driver which is part of the mechanism that antivirus applications use to do realtime scanning of files. The workaround that Murray360 has developed unfortunately requires making use of copyright protected files from the Avast! installer, so we can’t advise this workaround as a permanent solution, but if you’re in a pinch…
But even more encouraging is that Microsoft has now acknowledged that a fix is currently in the works:
Hopefully we’ll have a permanent fix from Microsoft in the next few weeks.
Update 2018-06-26: As promised, Microsoft has released an update to fix this issue. In our internal testing it completely rectifies the issue. Happy updating!