poniedziałek, 10 września 2012

Windows 7 udostępnia pliki a komputery z XP nie mają do nich dostępu

W pracy zarządzam niewielką siecią. Komputery są wpięte do switcha a switch do routera, który zarządza całością. Jeden z komputerów, nazwijmy go roboczo serwerem, udostępnia stale dość dużą ilość danych. Jest to stacja z systemem operacyjnym Windows 7. Pozostałe komputery pracują na Windows 7 lub Windows XP.

W podanej konfiguracji spotkałem się z takim problemem. Po odpowiednim ustawieniu udostępniania (dostęp bez hasła, dla wszystkich użytkowników, jedna grupa robocza na wszystkich komputerach, etc.) wszystko działało tylko przez krótki moment. Po jakimś czasie komputery z Windows XP traciły dostęp do udostępnionych plików. Przy próbie otwarcia zasobów pojawiały się komunikaty różnej treści. Nie jest ona istotna dla całej sprawy. Ważne, że nie było dostępu do plików oraz nie można było wyświetlić jakiejkolwiek zawartości grupy roboczej z komputera z Windows XP. Jedynym, jak się wydawało, rozwiązaniem był restart serwera. Ale po chwili sytuacja się powtarzała. Kluczem do rozwiązania problemu okazała się zawartość Dzienników Zdarzeń Systemu Windows (Komputer => PPM => Zarządzaj => Podgląd zdarzeń => Dzienniki Systemu Windows => System). Pojawiał się tam błąd z identyfikatorem zdarzenia 2017.

Dalej pomógł "wujek Google" i strona w języku angielskim: http://answers.microsoft.com/en-us/windows/forum/windows_7-networking/svr-error-2017-windows-xp-cannot-connect-to-shares/9f7ddcae-eff1-4166-9754-f77f1d7b7378. W posiadanej i opisanej przeze mnie konfiguracji sieci, podstawą jest zmiana dwóch kluczy rejestru serwera. Wartość klucza DWORD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache trzeba ustawić na 1 (domyślnie jest 0) a wartość klucza DWORD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters\Size zmienić na 3 (domyślnie jest 1).

Można też dodać klucz HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters\MaxNonpagedMemoryUsage i ustawić jego wartość na najwyższą możliwą czyli 4294967295 lub szesnastkowo ffffffff. Ta zmiana jest odpowiedzią na treść komunikatu błędu 2017: "Serwer nie może przydzielić pamięci z puli niestronicowanej, ponieważ osiągnął skonfigurowany limit dla przydzielania puli niestronicowanej".

Można jeszcze wejść w zaawansowane ustawienia systemu serwera: Mój komputer => PPM => Właściwości => Zaawansowane ustawienia systemu => karta Zaawansowane, pole Wydajność => Ustawienia... => karta Zaawansowane => Dopasuj w celu uzyskania lepszej wydajności przez: zaznaczyć Usługi działające w tle.

Po wszystkich operacjach trzeba zrestartować komputer, który udostępnia pliki a błędy nie powinny się już pojawiać.