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 SMB (Server Message Block) 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. SMB 1.0 non è installato per impostazione predefinita in alcuna edizione di Windows 11 o Windows Server 2019 e versioni successive. Anche SMB 1.0 non è installato per impostazione predefinita in Windows 10, ad eccezione delle edizioni Home e Pro. Invece di reinstallare SMB 1.0, è consigliabile aggiornare il server SMB che lo richiede ancora. Per un elenco di terze parti che richiedono SMB 1.0 e i relativi aggiornamenti che rimuovono il requisito, vedere SMB1 Product Clearinghouse.

Disabilitazione di SMBv2 o SMBv3 per la risoluzione dei problemi

È consigliabile mantenere abilitato SMBv2 e SMBv3, ma potrebbe risultare utile disabilitarne uno temporaneamente per la risoluzione dei problemi. Per maggiori informazioni, consultare la sezione 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: consente l'aggregazione della larghezza di banda e della tolleranza di errore della rete se sono disponibili più percorsi tra il server e il client.
  • SMB diretto: aggiunge il supporto di rete RDMA per prestazioni elevate, con bassa latenza e uso ridotto della CPU
  • Crittografia: fornisce crittografia end-to-end e protegge dalle intercettazioni su reti non affidabili
  • 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, la disabilitazione di SMBv2 disattiva le funzionalità seguenti:

  • Combinazione di richieste: consente l'invio di più richieste SMBv2 come singola richiesta di rete
  • Letture e scritture di dimensioni maggiori: uso migliore di 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
  • Miglioramento della firma dei messaggi: 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 nelle 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 maggiori informazioni sulle funzionalità di SMBv2 e SMBv3, leggere 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
    
  • Disabilita:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Abilitare:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Suggerimento

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

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

Server Manager - Dashboard method

Per rimuovere SMBv1 da Windows Server:

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

Metodo Installazione applicazioni di Windows 8.1, Windows 10 e Windows 11

Add-Remove Programs client method

Per disabilitare SMBv1 per i sistemi operativi indicati:

  1. In Pannello di controllo selezionare Programmi e funzionalità.
  2. Nella Home del pannello di controllo, selezionare Attiva o disattiva le funzionalità di Windows per aprire la casella Funzionalità di Windows.
  3. Nella casella Funzionalità di Windows, scorrere verso il basso nell'elenco, deselezionare la casella di controllo 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 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 hanno introdotto il nuovo cmdlet Set-SMBServerConfiguration di 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
    
  • Disabilita:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Abilitare:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Per maggiori informazioni, consultare la sezione Archiviazione server in Microsoft.

SMB v2/v3

  • Rilevare:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Disabilita:

    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.

Metodi di PowerShell aggiuntivi

Nota

Questo metodo richiede PowerShell 2.0 o versioni successive.

SMBv1 nel server SMB

Rilevare:

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

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

Disabilita:

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 è necessario riavviare il computer dopo aver apportato queste modifiche. Per maggiori informazioni, consultare la sezione Archiviazione server in Microsoft.

SMBv2/v3 nel server SMB

Rilevare:

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

Disabilita:

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

È necessario riavviare il computer dopo aver apportato queste modifiche.

Editor del Registro di sistema

Importante

Seguire attentamente i passaggi in questa sezione. Se le modifiche al Registro di sistema vengono apportate in modo non corretto, possono verificarsi problemi gravi. Prima di apportare le modifiche, eseguire il backup del Registro di sistema per il ripristino nel caso si verifichino dei problemi.

Per abilitare o disabilitare SMBv1 nel server SMB, configurare la chiave del registro seguente:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

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 seguente:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

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

Nota

 È necessario riavviare il computer dopo aver apportato queste modifiche.

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:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • Voce di registro: SMB1
  • REG_DWORD: 0 = Disabilitato

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

  1. Aprire il 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 selezionare Modifica.

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

  3. Fare clic con il pulsante destro del mouse su nodo Registro, scegliere Nuovo, quindi selezionare Voce di registro.

    Registry - New - Registry Item

Nella finestra di dialogo Nuove proprietà di registro, 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

New Registry Properties - General

Questa procedura disabilita i componenti del server SMBv1. Questi Criteri di gruppo devono essere applicati 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 precedenti e di terze parti (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 l'aggiornamento mensile di maggio 2018 è installato e in Windows 8.1 e Windows Server 2012 R2 se è installato l'aggiornamento mensile di luglio 2017.

  • Abilitare:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Disabilita:

    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 con SMBv1.

Riepilogo

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

Group Policy Management Editor - Registry

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 di registro siano applicate correttamente. Assicurarsi che SMBv2 e SMBv3 funzionino per tutti gli altri sistemi nell'ambiente.

Nota

Non dimenticare di riavviare i sistemi di destinazione.