Problemy z dostępem do bazy po aktualizacji Windows 10 do wersji 1803
Microsoft dokonał aktualizacji systemu Windows 10. Jest to tzw. duża aktualizacja (znana pod nazwą April Update) i nosi numer 1803. Wprowadziła ona zmiany w zabezpieczeniach – jeśli program zostanie uruchomiony z sieci po protokole SMB mniejszym niż 2, taki program nie będzie miał dostępu do sieci, w szczególności do baz danych. Protokoły SMB2 i wyższe obsługują systemy Windows 7 (i wyżej) oraz Windows Server 2008 i nowsze. Niestety protokoły te nie są obsługiwane przez Windows XP oraz Windows Server 2003. Zatem uruchomienie programu (pliku EXE) z serwera Windows 2003 (lub zdalnego komputera z Windows XP) jest możliwe, ale program taki nie będzie miał dostępu do sieci i nie połączy się z bazą. Jeśli problemy z działaniem programu dotyczą Windows 2008 lub nowszego systemu, należy sprawdzić, czy na serwerze nie wyłączono protokołów SMB2/3. Ich załączenie rozwiąże problem. Obecnie nie są nam znane sposoby wyłączenia tego zabezpieczenia po dokonanej aktualizacji. Należy zauważyć, że systemy Windows XP i Windows 2003 Server dawno utraciły swoje wsparcie i należy je wymienić. Problemy z poprawnym działaniem programu mogą dotyczyć także użytkowników uruchamiających oprogramowanie z serwera Linux, jeśli jest tam stara wersja systemu (stara SAMBA), która nie obsługuje protokołu SMB2 lub wyższego. Tu rozwiązaniem może być aktualizacja Linuxa, a zwłaszcza SAMBY. Wspomniane problemy mogą także dotknąć użytkowników serwerów NAS. Nawet nowsze modele mogą nie mieć zaimplementowanej obsługi SMB2 – w tym przypadku należy sprawdzić, czy producent przygotował odpowiednią aktualizację firmware.
W Windows 10 można sprawdzić, jakim protokołem jesteśmy połączeni z serwerem. W tym celu należy uruchomić Windows PowerShell jako administrator (prawym przyciskiem myszy) i wpisać: „Get-SmbConnection” (bez cudzysłowu). W kolumnie „Dialect” zobaczymy wersję SMB. Jeśli jest mniejsza niż 2.0, opisywany problem wystąpi. Należy jeszcze raz podkreślić – problem dotyczy uruchomienia programu (pliku EXE) po protokole SMB1, a nie dostępu do bazy posadowionej na Windows 2003.
Jak rozwiązać problem? Poniżej przedstawiamy kilka możliwości:
- Najbardziej oczywistym sposobem jest aktualizacja serwera do nowszej wersji. Niestety często wiąże się to z zakupem nowego serwera, gdyż sprzęt, na którym pracuje Windows 2003, jest już zwykle przestarzały.
- Można skopiować cały katalog z programem na dysk lokalny – wówczas program będzie uruchamiany z lokalnego dysku, a Windows nie zablokuje mu dostępu do sieci – aplikacja będzie działać normalnie. Nie jest to jednak wygodne, gdyż znacznie utrudnia aktualizację oprogramowania.
- Można przenieść programy na inny serwer obsługujący SMB2 (lub nowszy). Nie trzeba przenosić samej bazy Firebird z Windows 2003. Przeniesienie programów nie wymaga ich instalacji – wystarczy wykonanie kopii. Ponieważ obciążenie serwera aplikacji jest minimalne, a samo oprogramowania nie zajmuje wiele miejsca, takie rozwiązanie może być bardzo dobre do czasu zakupu nowego serwera.
- Najszybciej – w systemie Windows 10 wybrać: Start → Uruchom (lub też z klawiatury: klawisz z logo systemu Windows + R) a następnie wpisać komendę:
OptionalFeatures
na ekranie pojawi się wówczas okno Funkcje systemu Windows:Na wyświetlonej tam liście funkcji należy znaleźć pozycję: "Obsługa udostępniania plików SMB 1.0/CIFS", następnie włączyć opcję: "Klient SMB 1.0/CIFS" i zrestartować system (ponownie uruchomić komputer). - Można odinstalować aktualizację Windows 10 (1803).
- Na forach internetowych znalazło się rozwiązanie (nieweryfikowane w naszej firmie) polegające na zainstalowaniu darmowej wersji antywirusa AVAST lub AVG. Antywirusy te wyłączają Windows Defender (standardowe zabezpieczenie Windows), a same nie wprowadzają ograniczenia na uruchamianie programów po protokole SMB1. Niestety nie wiemy, jak długo takie rozwiązanie będzie działać.