Come rilevare, abilitare e disabilitare SMBv1, SMBv2 e SMBv3 in Windows

Si applica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 11, Windows 10, Windows 8.1, Windows 8

Questo articolo descrive come abilitare e disabilitare Server Message Block (SMB) versione 1 (SMBv1), SMB versione 2 (SMBv2) e SMB versione 3 (SMBv3) nei componenti client e server SMB.

Durante la disabilitazione o la rimozione di SMBv1 potrebbe causare alcuni problemi di compatibilità con i vecchi computer o software, SMBv1 presenta vulnerabilità di sicurezza significative e si consiglia vivamente di non usarlo.

Disabilitazione di SMBv2 o SMBv3 per la risoluzione dei problemi

È consigliabile mantenere SMBv2 e SMBv3 abilitato, ma potrebbe risultare utile disabilitarne uno temporaneamente per la risoluzione dei problemi. Per altre informazioni, vedere Come rilevare lo stato, abilitare e disabilitare i protocolli SMB nel server SMB.

In Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012, disabilitando SMBv3 disattiva le funzionalità seguenti:

  • Failover trasparente: i client si riconnettono senza interruzioni ai nodi del cluster durante la manutenzione o il failover
  • Scale Out : accesso simultaneo ai dati condivisi in tutti i nodi del cluster di file
  • Multicanale: aggregazione della larghezza di banda di rete e tolleranza di errore se sono disponibili più percorsi tra client e server
  • SMB diretto: aggiunge il supporto di rete RDMA per prestazioni elevate, con bassa latenza e uso ridotto della CPU
  • Crittografia: fornisce la crittografia end-to-end e protegge dall'intercettazione nelle reti non attendibili
  • Leasing directory - Migliora i tempi di risposta delle applicazioni nelle succursali tramite la memorizzazione nella cache
  • Ottimizzazioni delle prestazioni: ottimizzazioni per operazioni di I/O di lettura/scrittura casuali di piccole dimensioni

In Windows 7 e Windows Server 2008 R2 disabilitare SMBv2 disattiva le funzionalità seguenti:

  • Composizione delle richieste: consente l'invio di più richieste SMBv2 come singola richiesta di rete
  • Letture e scritture di dimensioni maggiori: uso migliore delle reti più veloci
  • Memorizzazione nella cache delle proprietà di cartelle e file : i client mantengono copie locali di cartelle e file
  • Handle durevoli: consente la connessione per riconnettersi in modo trasparente al server in caso di disconnessione temporanea
  • Firma dei messaggi migliorata: HMAC SHA-256 sostituisce MD5 come algoritmo di hash
  • Maggiore scalabilità per la condivisione di file: il numero di utenti, condivisioni e file aperti per server è notevolmente aumentato
  • Supporto per i collegamenti simbolici
  • Modello di leasing oplock client: limita i dati trasferiti tra il client e il server, migliorando le prestazioni sulle reti a latenza elevata e aumentando la scalabilità del server SMB
  • Supporto MTU di grandi dimensioni: per l'uso completo di 10 Gigabit Ethernet (GbE)
  • Miglioramento dell'efficienza energetica: i client con file aperti a un server possono dormire

Il protocollo SMBv2 è stato introdotto in Windows Vista e Windows Server 2008, mentre il protocollo SMBv3 è stato introdotto in Windows 8 e Windows Server 2012. Per altre informazioni sulle funzionalità SMBv2 e SMBv3, vedere gli articoli seguenti:

Come rimuovere SMBv1 tramite PowerShell

Ecco i passaggi per rilevare, disabilitare e abilitare client e server SMBv1 usando i comandi di PowerShell con elevazione dei privilegi.

Nota

Il computer verrà riavviato dopo aver eseguito i comandi di PowerShell per disabilitare o abilitare SMBv1.

  • Rilevare:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Disattivare:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Abilitare:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Suggerimento

È possibile rilevare lo stato SMBv1, senza elevazione, eseguendo: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: metodo Server Manager

Server Manager - Metodo dashboard

Per rimuovere SMBv1 da Windows Server:

  1. Nel dashboard Server Manager del server in cui si vuole rimuovere SMBv1, in Configura questo server locale selezionareAggiungi ruoli e funzionalità.
  2. Nella pagina Prima di iniziare selezionare Avvia la Rimozione guidata ruoli e funzionalità e quindi nella pagina seguente selezionare Avanti.
  3. Nella pagina Seleziona server di destinazione in Pool di server verificare che il server da cui si vuole rimuovere la funzionalità sia selezionato e quindi selezionare Avanti.
  4. Nella pagina Rimuovi ruoli del server selezionare Avanti.
  5. Nella pagina Rimuovi funzionalità deselezionare la casella di controllo SMB 1.0/CIFS File Sharing Support (Supporto condivisione file SMB 1.0/CIFS ) e selezionare Avanti.
  6. Nella pagina Conferma selezioni di rimozione verificare che la funzionalità sia elencata e quindi selezionare Rimuovi.

Windows 8.1, Windows 10 e Windows 11: metodo Add o Remove Programs

Metodo client Installazione applicazioni

Per disabilitare SMBv1 per i sistemi operativi indicati:

  1. In Pannello di controllo selezionare Programmi e funzionalità.
  2. In Pannello di controllo Home selezionare Attiva o disattiva funzionalità di Windows per aprire la casella Funzionalità di Windows.
  3. Nella casella Funzionalità di Windows scorrere verso il basso l'elenco, deselezionare la casella di controllo per Supporto condivisione file SMB 1.0/CIFS e selezionare OK.
  4. Dopo che Windows applica la modifica, nella pagina di conferma selezionare Riavvia ora.

Come rilevare lo stato, abilitare e disabilitare i protocolli SMB

Nota

Quando si abilita o si disabilita SMBv2 in Windows 8 o Windows Server 2012, SMBv3 è abilitato o disabilitato. Questo comportamento si verifica perché questi protocolli condividono lo stesso stack.

Windows 8 e Windows Server 2012 ha introdotto il nuovo cmdlet Set-SMBServerConfiguration Windows PowerShell. Il cmdlet consente di abilitare o disabilitare i protocolli SMBv1, SMBv2 e SMBv3 nel componente server.

Non è necessario riavviare il computer dopo aver eseguito il cmdlet Set-SMBServerConfiguration .

SMBv1

  • Rilevare:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Disattivare:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Abilitare:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Per altre informazioni, vedere Archiviazione server in Microsoft.

SMB v2/v3

  • Rilevare:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Disattivare:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Abilitare:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Per Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008

Per abilitare o disabilitare i protocolli SMB in un server SMB che esegue Windows 7, Windows Server 2008 R2, Windows Vista o Windows Server 2008, usare Windows PowerShell o editor del Registro di sistema.

Metodi di PowerShell aggiuntivi

Nota

Questo metodo richiede PowerShell 2.0 o versione successiva.

SMBv1 nel server SMB

Rilevare:

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

Configurazione predefinita = Abilitata (non viene creato alcun valore denominato del Registro di sistema), quindi non verrà restituito alcun valore SMB1

Disattivare:

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

Abilitare:

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

Nota Dopo aver apportato queste modifiche, è necessario riavviare il computer. Per altre informazioni, vedere Archiviazione server in Microsoft.

SMBv2/v3 nel server SMB

Rilevare:

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

Disattivare:

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

Abilitare:

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

Nota

Dopo aver apportato queste modifiche, è necessario riavviare il computer.

Editor del Registro di sistema

Importante

Segui con attenzione la procedura descritta in questa sezione. Se le modifiche al Registro di sistema vengono apportate in modo non corretto, possono verificarsi problemi gravi. Prima di modificarlo, esegui il backup del Registro di sistema per il ripristino nel caso in cui si verifichino problemi.

Per abilitare o disabilitare SMBv1 nel server SMB, configurare la chiave del Registro di sistema seguente:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters e fare clic per selezionarla.

Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

Per abilitare o disabilitare SMBv2 nel server SMB, configurare la chiave del Registro di sistema seguente:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters e fare clic per selezionarla.

Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

Nota

 Dopo aver apportato queste modifiche, è necessario riavviare il computer.

Disabilitare SMBv1 usando Criteri di gruppo

Questa sezione illustra come usare Criteri di gruppo per disabilitare SMBv1. È possibile usare questo metodo in versioni diverse di Windows.

SMBv1

Questa procedura configura il nuovo elemento seguente nel Registro di sistema:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters e fare clic per selezionarla.

  • Voce del Registro di sistema: SMB1
  • REG_DWORD: 0 = Disabilitato

Per usare Criteri di gruppo per configurare questa operazione, seguire questa procedura:

  1. Aprire Console Gestione Criteri di gruppo. Fare clic con il pulsante destro del mouse sull'oggetto Criteri di gruppo che dovrebbe contenere il nuovo elemento preferenza, quindi fare clic su Modifica.

  2. Nell'albero della console in Configurazione computer espandere la cartella Preferenze e quindi espandere la cartella Impostazioni di Windows .

  3. Fare clic con il pulsante destro del mouse sul nodo Registro di sistema scegliere Nuovo e fare clic su Elemento Registro di sistema.

    Registro di sistema - Nuovo - Elemento del Registro di sistema

Nella finestra di dialogo Nuove proprietà del Registro di sistema selezionare quanto segue:

  • Azione: Crea
  • Hive: HKEY_LOCAL_MACHINE
  • Percorso chiave: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Nome valore: SMB1
  • Tipo di valore: REG_DWORD
  • Dati valore: 0

Nuove proprietà del Registro di sistema - Generale

Questa procedura disabilita i componenti del server SMBv1. Questa Criteri di gruppo deve essere applicata a tutte le workstation, i server e i controller di dominio necessari nel dominio.

Nota

 I filtri WMI possono anche essere impostati per escludere sistemi operativi non supportati o esclusioni selezionate, ad esempio Windows XP.

Importante

Prestare attenzione quando si apportano queste modifiche nei controller di dominio in cui i sistemi Windows XP o Linux e di terze parti legacy (che non supportano SMBv2 o SMBv3) richiedono l'accesso a SYSVOL o ad altre condivisioni file in cui SMB v1 è disabilitato.

Controllo dell'utilizzo di SMBv1

Per determinare quali client tentano di connettersi a un server SMB con SMBv1, è possibile abilitare il controllo in Windows Server 2016, Windows 10 e Windows Server 2019. È anche possibile controllare in Windows 7 e Windows Server 2008 R2 se è installato l'aggiornamento mensile di maggio 2018 e in Windows 8.1 e Windows Server 2012 R2 se è installato l'aggiornamento mensile di luglio 2017.

  • Abilitare:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Disattivare:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Rilevare:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

Quando il controllo SMBv1 è abilitato, l'evento 3000 viene visualizzato nel registro eventi "Microsoft-Windows-SMBServer\Audit", identificando ogni client che tenta di connettersi a SMBv1.

Riepilogo

Se tutte le impostazioni si trovano nello stesso oggetto Criteri di gruppo, Criteri di gruppo Management visualizza le impostazioni seguenti.

Editor gestione Criteri di gruppo - Registro di sistema

Test e convalida

Dopo aver completato i passaggi di configurazione descritti in questo articolo, consentire ai criteri di replicare e aggiornare. Se necessario per il test, eseguire gpupdate /force al prompt dei comandi e quindi esaminare i computer di destinazione per assicurarsi che le impostazioni del Registro di sistema vengano applicate correttamente. Assicurarsi che SMBv2 e SMBv3 funzionino per tutti gli altri sistemi nell'ambiente.

Nota

Non dimenticare di riavviare i sistemi di destinazione.