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

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

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 potrebbero verificarsi problemi di compatibilità con computer o software precedenti, SMBv1 presenta vulnerabilità di sicurezza significative ed è consigliabile non usarlo.

Disabilitazione di SMBv2 o SMBv3 per la risoluzione dei problemi

È consigliabile mantenere abilitati SMBv2 e SMBv3, ma potrebbe essere utile disabilitarlo 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 e Windows 8, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012, la disabilitazione di 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 utilizzo ridotto della CPU
  • Crittografia: fornisce la crittografia end-to-end e protegge dalle intercettazioni su reti non attendibili
  • Leasing di directory: migliora i tempi di risposta delle applicazioni nelle succursali tramite la memorizzazione nella cache
  • Ottimizzazioni delle prestazioni: ottimizzazioni per piccole operazioni di I/O casuali di lettura/scrittura

In Windows 7 e Windows Server 2008 R2, la disabilitazione di SMBv2 disattiva le funzionalità seguenti:

  • Composizione delle richieste: consente di inviare più richieste SMBv2 come singola richiesta di rete
  • Operazioni di lettura e scrittura più grandi: uso migliore di reti più veloci
  • Caching di proprietà di cartelle e file: i client mantengono copie locali di cartelle e file
  • Handle durevoli: consentono la riconnessione trasparente della connessione al server in caso di disconnessione temporanea
  • Miglioramento della firma dei messaggi: HMAC SHA-256 sostituisce MD5 come algoritmo hash
  • Miglioramento della scalabilità per la condivisione di file: il numero di utenti, condivisioni e file aperti per ogni server è notevolmente aumentato
  • Supporto per i collegamenti simbolici
  • Modello di leasing di 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 un uso completo di 10 Gigabit Ethernet (GbE)
  • Miglioramento dell'efficienza energetica: i client che dispongono di file aperti in un server possono essere in sospensione

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

Ecco come rimuovere SMBv1 in Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016 e Windows 2012 R2.

Metodi di PowerShell

SMBv1 (client e server)
  • Rilevare:

    Get-WindowsOptionalFeature -Online -FeatureName smb1protocol
    
  • Disattivare:

    Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol
    
  • Abilitare:

    Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol
    

Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: Server Manager metodo per disabilitare SMB

SMBv1

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 il server locale selezionare Aggiungi ruoli e funzionalità.
  2. Nella pagina Prima di iniziare selezionare Avvia 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 sia selezionato il server da cui si vuole rimuovere la funzionalità e quindi selezionare Avanti.
  4. Nella pagina Rimuovi 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 rimozione verificare che la funzionalità sia elencata e quindi selezionare Rimuovi.

Windows 8.1 e Windows 10: metodo di PowerShell

Protocollo SMBv1
  • Rilevare:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Disattivare:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Abilitare:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
Protocollo SMBv2/v3 (disabilita solo il server SMBv2/v3)
  • Rilevare:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Disattivare:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Abilitare:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Windows 8.1 e Windows 10: metodo Installazione applicazioni

metodo client Add-Remove Programs

Per disabilitare SMBv1 Windows 8.1 e Windows 10:

  1. In Pannello di controllo selezionare Programmi e funzionalità.
  2. In Pagina iniziale Pannello di controllo selezionare Attiva o Windows funzionalità per aprire la casella Windows funzionalità.
  3. Nella casella Windows funzionalità scorrere verso il basso nell'elenco, deselezionare la casella di controllo SMB 1.0/CIFS File Sharing Support (Supporto condivisione file SMB 1.0/CIFS) e selezionare OK.
  4. Dopo Windows la modifica, nella pagina di conferma selezionare Riavvia ora.

Come rilevare lo stato, abilitare e disabilitare i protocolli SMB nel server SMB

Per Windows 8 e Windows Server 2012

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

Nota

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

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

SMBv1 nel server SMB
  • 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 nel server SMB
  • 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

Nota

Questo metodo richiede PowerShell 2.0 o versione successiva di PowerShell.

SMBv1 nel server SMB

Rilevare:

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

Configurazione predefinita = Abilitata (non viene creata alcuna chiave 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.

Come rilevare lo stato, abilitare e disabilitare i protocolli SMB nel client SMB

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

Nota

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

SMBv1 nel client SMB
  • Detect

    sc.exe qc lanmanworkstation
    
  • Disattivare:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= disabled
    
  • Abilitare:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= auto
    

Per altre informazioni, vedere Archiviazione server in Microsoft

SMBv2/v3 nel client SMB
  • Rilevare:

    sc.exe qc lanmanworkstation
    
  • Disattivare:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
    sc.exe config mrxsmb20 start= disabled
    
  • Abilitare:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb20 start= auto
    

Nota

  • È necessario eseguire questi comandi a un prompt dei comandi con privilegi elevati.
  • Dopo aver apportato queste modifiche, è necessario riavviare il computer.

Disabilitare il server SMBv1 con Criteri di gruppo

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 questa configurazione, 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 Windows Impostazioni cartella.

  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 Proprietà nuovo 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. Questo Criteri di gruppo deve essere applicato a tutte le workstation, i server e i controller di dominio necessari nel dominio.

Nota

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

Importante

Prestare attenzione quando si apportano queste modifiche nei controller di dominio in cui i sistemi legacy 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.

Disabilitare il client SMBv1 con Criteri di gruppo

Per disabilitare il client SMBv1, è necessario aggiornare la chiave del Registro di sistema dei servizi per disabilitare l'avvio di MRxSMB10 e quindi rimuovere la dipendenza da MRxSMB10 dalla voce per LanmanWorkstation in modo che possa essere avviata normalmente senza richiedere il primo avvio di MRxSMB10.

Queste indicazioni aggiornano e sostituiscono i valori predefiniti nei due elementi seguenti del Registro di sistema:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

Voce del Registro di sistema: Avvio REG_DWORD: 4= Disabilitato

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

Voce del Registro di sistema: DependOnService REG_MULTI_SZ: "Bowser", "MRxSmb20","NSI"

Nota

Il valore predefinito include MRxSMB10, che viene ora rimosso come dipendenza.

Per configurarlo usando Criteri di gruppo, seguire questa procedura:

  1. Aprire Console Gestione Criteri di gruppo. Fare clic con il pulsante destro del mouse sull'oggetto Criteri di gruppo che deve contenere il nuovo elemento preferenza e quindi scegliere Modifica.

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

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

  4. Nella finestra di dialogo Proprietà nuovo Registro di sistema selezionare quanto segue:

    • Azione: Aggiorna
    • Hive: HKEY_LOCAL_MACHINE
    • Percorso chiave: SYSTEM\CurrentControlSet\services\mrxsmb10
    • Nome valore: Inizio
    • Tipo di valore: REG_DWORD
    • Dati valore: 4

    Proprietà di avvio - Generale

  5. Rimuovere quindi la dipendenza da MRxSMB10 disabilitata.

    Nella finestra di dialogo Proprietà nuovo Registro di sistema selezionare quanto segue:

    • Azione: Sostituire
    • Hive: HKEY_LOCAL_MACHINE
    • Percorso chiave: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
    • Nome valore: DependOnService
    • Tipo di valore: REG_MULTI_SZ
    • Dati valore:
      • Bowser
      • MRxSmb20
      • NSI

    Nota

    Queste tre stringhe non avranno punti elenco (vedere la schermata seguente).

    Proprietà di DependOnService

    Il valore predefinito include MRxSMB10 in molte versioni di Windows, quindi sostituendoli con questa stringa multivalore, viene in effetti rimosso MRxSMB10 come dipendenza per LanmanServer e si va da quattro valori predefiniti fino solo a questi tre valori precedenti.

    Nota

    Quando si usa Console Gestione Criteri di gruppo, non è necessario usare virgolette o virgole. È sufficiente digitare ogni voce nelle singole righe.

  6. Riavviare i sistemi di destinazione per completare la disabilitazione di SMB v1.

Controllo dell'utilizzo di SMBv1

Per determinare quali client stanno tentando 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 sono nello stesso oggetto Criteri di gruppo, in Criteri di gruppo Management vengono visualizzate 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 la replica e l'aggiornamento dei criteri. 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 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.