Udostępnij za pośrednictwem


Wykrywanie, włączanie i wyłączanie protokołu SMBv1, SMBv2 i SMBv3 w systemie Windows

W tym artykule opisano sposób włączania i wyłączania bloku komunikatów serwera (SMB) w wersji 1 (SMBv1), protokołu SMB w wersji 2 (SMBv2) i protokołu SMB w wersji 3 (SMBv3) w składnikach klienta i serwera SMB.

Jeśli wyłączysz lub usuniesz protokół SMBv1, mogą wystąpić problemy ze zgodnością ze starymi komputerami lub oprogramowaniem. Protokół SMBv1 ma znaczące luki w zabezpieczeniach, a zdecydowanie zalecamy, aby go nie używać. SMBv1 nie jest instalowany domyślnie w żadnej wersji systemu Windows 11 lub Windows Server 2019 i nowszych wersji. Protokół SMBv1 również nie jest instalowany domyślnie w systemie Windows 10, z wyjątkiem wersji Home i Pro. Zalecamy, aby zamiast ponownie zainstalować serwer SMBv1, należy zaktualizować serwer SMB, który nadal go wymaga. Aby uzyskać listę partnerów, którzy wymagają programu SMBv1 i ich aktualizacji, które usuwają wymaganie, zobacz SMB1 Product Clearinghouse.

Wyłącz protokół SMBv2 lub SMBv3 na potrzeby rozwiązywania problemów

Zalecamy włączenie protokołu SMBv2 i SMBv3, ale może być przydatne tymczasowe wyłączenie jednego z nich w celu rozwiązywania problemów. Aby uzyskać więcej informacji, zobacz Używanie wiersza polecenia lub Edytora rejestru do zarządzania protokołami SMB.

Wyłączenie funkcji SMBv3 powoduje dezaktywację następujących funkcji:

  • Przezroczysty mechanizm failover: umożliwia klientom ponowne połączenie z węzłami klastra bez przerw podczas konserwacji lub awarii.
  • Skalowanie w poziomie: zapewnia współbieżny dostęp do danych udostępnionych na wszystkich węzłach klastra plików.
  • SMB Multichannel: ułatwia agregację przepustowości sieci i odporności na uszkodzenia, jeśli wiele ścieżek jest dostępnych między klientem a serwerem
  • SMB Direct: dodaje obsługę sieci zdalnego bezpośredniego dostępu do pamięci (RDMA) w celu zapewnienia wysokiej wydajności, z małymi opóźnieniami i niskim użyciem procesora CPU
  • Szyfrowanie: zapewnia kompleksowe szyfrowanie i zapewnia ochronę przed podsłuchiwaniem w niezaufanych sieciach
  • Dzierżawa katalogów: poprawia czas odpowiedzi aplikacji w oddziałach za pomocą buforowania
  • Optymalizacja wydajności: optymalizuje małe losowe operacje we/wy odczytu/zapisu

Wyłączenie funkcji SMBv2 powoduje dezaktywację następujących funkcji:

  • Łączenie żądań: umożliwia wysyłanie wielu żądań SMBv2 jako pojedynczego żądania sieciowego
  • Większe operacje odczytu i zapisu: poprawia wykorzystanie szybszych sieci
  • Buforowanie właściwości folderu i pliku: umożliwia klientom przechowywanie lokalnych kopii folderów i plików
  • Trwałe uchwyty: Umożliwiają ponowne nawiązanie połączenia z serwerem w sposób transparentny po tymczasowym rozłączeniu.
  • Ulepszone podpisywanie komunikatów: używa 256-bitowego kodu uwierzytelniania komunikatów opartego na algorytmie skrótu (HMAC SHA-256) zamiast algorytmu Message-Digest 5 (MD5) jako algorytmu skrótu.
  • Ulepszona skalowalność udostępniania plików: znacznie zwiększa liczbę użytkowników, udostępnień i otwartych plików na serwer.
  • Obsługa łączy symbolicznych
  • Model leasingu oplock klienta: ogranicza transfer danych między klientem a serwerem, co poprawia wydajność w sieciach o wysokiej latencji oraz zwiększa skalowalność serwera SMB.
  • Obsługa dużej maksymalnej jednostki transmisji (MTU): Obsługuje pełne wykorzystanie technologii 10 Gigabit Ethernet (GbE)
  • Większa wydajność energetyczna: umożliwia klientom, którzy mają otwarte pliki na serwerze, przejście w stan uśpienia

Protokół SMBv2 został wprowadzony w systemach Windows Vista i Windows Server 2008. Protokół SMBv3 został wprowadzony w systemach Windows 8 i Windows Server 2012. Aby uzyskać więcej informacji na temat funkcji SMBv2 i SMBv3, zobacz następujące artykuły:

Usuwanie protokołu SMBv1 przy użyciu programu PowerShell

Można użyć Get-WindowsOptionalFeature, Disable-WindowsOptionalFeaturei Enable-WindowsOptionalFeature polecenia programu PowerShell do wykrywania, wyłączania i włączania klienta lub serwera SMBv1. Uruchom polecenia w wierszu polecenia z podwyższonym poziomem uprawnień.

Notatka

Komputer zostanie uruchomiony ponownie po uruchomieniu poleceń programu PowerShell, aby wyłączyć lub włączyć protokół SMBv1.

  • Wykryć:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Wyłącz

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Umożliwiać:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Napiwek

Stan SMBv1 można wykryć bez podniesienia uprawnień, uruchamiając polecenie Get-SmbServerConfiguration: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Usuń protokół SMBv1

Protokół SMBv1 nie jest instalowany domyślnie w systemie Windows Server 2019 i nowszych wersjach. We wcześniejszych wersjach systemu Windows Server można usunąć protokół SMBv1 za pomocą Menedżera serwera:

  1. Na serwerze, z którego chcesz usunąć protokół SMBv1, otwórz Menedżera serwera.

  2. Na pulpicie nawigacyjnym Menedżera serwera w obszarze Skonfiguruj ten serwer lokalnywybierz pozycję Dodaj role i funkcje.

  3. Na stronie Przed rozpoczęciem wybierz pozycję Uruchom Kreatora usuwania ról i funkcji, a następnie na następnej stronie wybierz pozycję Dalej.

  4. Na stronie Wybierz serwer docelowy w sekcji Pula serweraupewnij się, że wybrano serwer, z którego chcesz usunąć funkcję, a następnie kliknij Dalej.

  5. Na stronie Usuń role serwera wybierz Dalej.

  6. Na stronie Usuń funkcje wyczyść pole wyboru dla SMB 1.0/CIFS File Sharing Support, a następnie wybierz pozycję Next.

    zrzut ekranu przedstawiający stronę Usuń funkcje na pulpicie nawigacyjnym Menedżera serwera. Na liście Funkcje wyróżniono protokół SMBv1.

  7. Na stronie Potwierdź usunięcie wybranych opcji upewnij się, że wybrana opcja jest wyświetlana, a następnie wybierz Usuń.

Zarządzanie protokołami SMB przy użyciu wiersza polecenia lub Edytora rejestru

Począwszy od aktualizacji Windows 10 Fall Creators Update i Windows Server 2019, SMBv1 nie jest już instalowany domyślnie. Aby uzyskać więcej informacji, zobacz: . SMBv1 nie jest instalowany domyślnie w systemie Windows 10 w wersji 1709, Windows Server w wersji 1709 i nowszych wersjach.

Po włączeniu lub wyłączeniu protokołu SMBv2 w systemie Windows 8 lub Windows Server 2012 protokół SMBv3 jest również włączony lub wyłączony. Takie zachowanie występuje, ponieważ te protokoły dzielą ten sam stos.

Możesz użyć polecenia cmdlet Set-SMBServerConfiguration, aby włączyć lub wyłączyć protokoły SMBv1, SMBv2 i SMBv3 w składniku serwera. Aby pobrać konfigurację serwera SMB, możesz użyć polecenia cmdlet Get-SmbServerConfiguration.

Nie musisz ponownie uruchamiać komputera po uruchomieniu polecenia cmdlet Set-SMBServerConfiguration.

SMBv1

  • Wykryć:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Wyłącz

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Umożliwiać:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Aby uzyskać więcej informacji, zobacz Przestań używać SMB1.

SMBv2 i SMBv3

  • Wykryć:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Wyłącz

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Umożliwiać:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Włączanie lub wyłączanie protokołu SMB w systemach Windows 7, Windows Server 2008 R2, Windows Vista i Windows Server 2008

Aby włączyć lub wyłączyć protokoły SMB na serwerze SMB z systemem Windows 7, Windows Server 2008 R2, Windows Vista lub Windows Server 2008, użyj programu Windows PowerShell lub Edytora rejestru, jak wyjaśniono w poniższych sekcjach.

Korzystanie z programu Windows PowerShell

Polecenia cmdlet Get-Item, Get-ItemPropertyi Set-ItemProperty służą do wykrywania, włączania i wyłączania protokołów SMB.

Notatka

Polecenia w poniższych sekcjach wymagają programu PowerShell 2.0 lub nowszego.

SmBv1 na serwerze SMB
  • Wykryć:

    Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
    

    Domyślna konfiguracja to Enabled. W związku z tym nie jest tworzona żadna nazwana wartość rejestru, więc polecenie nie zwraca wartości SMB1.

  • Wyłącz

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
    
  • Umożliwiać:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
    

Notatka

Po wprowadzeniu tych zmian należy ponownie uruchomić komputer.

Aby uzyskać więcej informacji, zobacz Przestań używać SMB1.

SmBv2 i SMBv3 na serwerze SMB
  • Wykryć:

    Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
    
  • Wyłącz

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
    
  • Umożliwiać:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force
    

Notatka

Po wprowadzeniu tych zmian należy ponownie uruchomić komputer.

Korzystanie z edytora rejestru

Ważny

Dokładnie wykonaj kroki opisane w tej sekcji. Poważne problemy mogą wystąpić, jeśli nieprawidłowo zmodyfikujesz rejestr. Przed zmodyfikowaniem go utwórz kopię zapasową rejestru w celu przywrócenia w przypadku wystąpienia problemów.

Aby włączyć lub wyłączyć protokół SMBv1 na serwerze SMB, otwórz Edytor rejestru i przejdź do następującej ścieżki klucza rejestru:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Skonfiguruj wpis, który ma następujące właściwości:

  • Jako nazwę użyj SMB1.
  • Dla typu użyj REG_DWORD.
  • W przypadku danych użyj 0 dla Wyłączone i 1 dla Włączone. Wartość domyślna to 1lub Włączone. W takim przypadku nie jest tworzony żaden klucz rejestru.

Aby włączyć lub wyłączyć protokół SMBv2 na serwerze SMB, otwórz Edytor rejestru i przejdź do następującej ścieżki klucza rejestru:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Skonfiguruj wpis, który ma następujące właściwości:

  • Jako nazwę użyj SMB2.
  • Dla typu użyj REG_DWORD.
  • W przypadku danych użyj 0 dla Wyłączone i 1 dla Włączone. Wartość domyślna to 1lub Włączone. W takim przypadku nie jest tworzony żaden klucz rejestru.

Notatka

 Po wprowadzeniu tych zmian należy ponownie uruchomić komputer.

Użyj zasad grupy, aby wyłączyć SMBv1

W tej sekcji pokazano, jak wyłączyć protokół SMBv1 przy użyciu zasad grupy. Tej metody można użyć w różnych wersjach systemu Windows.

SMBv1

Można wyłączyć protokół SMBv1 na serwerze SMB, konfigurując następujący nowy element w rejestrze:

  • Ścieżka klucza: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Wpis rejestru: SMB1
  • Typ wpisu: REG_DWORD
  • Dane wprowadzania: 0 dla wyłączone

Aby skonfigurować ten element za pomocą zasad grupy, wykonaj następujące czynności:

  1. Otwórz konsolę zarządzania zasadami grupy. Kliknij prawym przyciskiem myszy obiekt zasad grupy (GPO), który powinien zawierać nowy element preferencji, a następnie wybierz Edytuj.

  2. W drzewie konsoli w obszarze Konfiguracja komputerarozwiń folder Preferencje, a następnie rozwiń folder Ustawienia systemu Windows.

  3. Kliknij prawym przyciskiem myszy węzeł rejestru , wskaż polecenie Nowy, a następnie wybierz pozycję Element rejestru.

    Zrzut ekranu przedstawiający drzewo konsoli w Konsoli Zarządzania Zasadami Grupowymi. Menu skrótów rejestru są widoczne, z wyróżnioną pozycją Nowy w pierwszym menu.

  4. W oknie dialogowym Właściwości nowego rejestru wybierz lub wprowadź następujące wartości:

    • Akcja: Utwórz
    • Hive: HKEY_LOCAL_MACHINE
    • ścieżka klucza: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    • nazwa wartości: SMB1
    • typ wartości: REG_DWORD
    • wartość danych: 0

    Zrzut ekranu przedstawiający okno dialogowe Właściwości Nowego Rejestru. Wartości są widoczne w polach akcji, gałęzi, ścieżki klucza, nazwy, typu i danych.

Ta procedura wyłącza składniki serwera SMBv1. Te zasady należy zastosować do wszystkich niezbędnych stacji roboczych, serwerów i kontrolerów domeny w domenie.

Notatka

 Można ustawić filtry instrumentacji zarządzania Windows (WMI), aby wykluczyć określone systemy operacyjne lub wykluczyć systemy operacyjne klienta lub serwera. Aby uzyskać więcej informacji, zobacz filtrowanie zasad grupy i tworzenie filtrów WMI dla GPO.

Ważny

Niektóre systemy wymagają dostępu do folderu SYSVOL lub innych udziałów plików, ale nie obsługują protokołu SMBv2 ani SMBv3. Przykłady takich systemów to starsze systemy Windows i starsze systemy Linux i systemy partnerskie. Należy zachować ostrożność podczas wyłączania protokołu SMBv1 na kontrolerach domeny w tych systemach.

Inspekcja użycia protokołu SMBv1

Aby określić, którzy klienci próbują nawiązać połączenie z serwerem SMB przy użyciu protokołu SMBv1, możesz włączyć inspekcję na klientach systemu Windows Server i Windows. Aby włączyć lub wyłączyć inspekcję, użyj polecenia cmdlet Set-SmbServerConfiguration. Aby sprawdzić stan inspekcji, użyj polecenia cmdlet Get-SmbServerConfiguration.

  • Umożliwiać:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Wyłącz

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Wykryć:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

Po włączeniu inspekcji SMBv1 można sprawdzić dziennik zdarzeń Microsoft-Windows-SMBServer\Audit pod kątem zdarzeń dostępu. Za każdym razem, gdy klient próbuje nawiązać połączenie z serwerem przy użyciu protokołu SMBv1, w dzienniku pojawia się wpis o identyfikatorze zdarzenia 3000.

Sprawdzanie ustawień zasad grupy

Jeśli wszystkie ustawienia znajdują się w tym samym GPO, Zarządzanie Zasadami Grupy wyświetla następujące ustawienia:

zrzut ekranu przedstawiający rejestr Edytora zarządzania zasadami grupy. Widoczne są trzy elementy: DependOnService, SMB1 i Start.

Testowanie i weryfikowanie zasad

Po wykonaniu kroków konfiguracji w Konsoli Zarządzania Zasadami Grup, daj Zasadom Grupy czas na zastosowanie aktualizacji w ich ustawieniach. W razie potrzeby testowania uruchom gpupdate /force w wierszu polecenia, a następnie przejrzyj komputery docelowe, aby upewnić się, że ustawienia rejestru są prawidłowo stosowane. Upewnij się, że systemy SMBv2 i SMBv3 działają dla wszystkich innych systemów w środowisku.

Notatka

Po przetestowaniu zasad uruchom ponownie systemy docelowe.