Condividi tramite


Rilevare, attivare e disattivare SMBv1, SMBv2 e SMBv3 in Windows

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.

Se disabiliti o rimuovi SMBv1, potresti riscontrare problemi di compatibilità con i vecchi computer o software. SMBv1 presenta vulnerabilità di sicurezza significative e si consiglia di non usarlo. SMBv1 non è installato per impostazione predefinita in alcuna edizione di Windows 11 o Windows Server 2019 e versioni successive. SMBv1 non è installato anche per impostazione predefinita in Windows 10, ad eccezione delle edizioni Home e Pro. Invece di reinstallare SMBv1, è consigliabile aggiornare il server SMB che lo richiede ancora. Per un elenco dei partner che richiedono SMBv1 e i relativi aggiornamenti che rimuovono il requisito, vedere SMB1 Product Clearinghouse.

Disabilitare 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 altre informazioni, vedere Usare la riga di comando o l'editor del Registro di sistema per gestire i protocolli SMB.

La disabilitazione di SMBv3 disattiva le funzionalità seguenti:

  • Failover trasparente: offre ai client un modo per riconnettersi senza interruzioni ai nodi del cluster durante la manutenzione o il failover
  • Scalabilità orizzontale: fornisce l'accesso simultaneo ai dati condivisi in tutti i nodi del cluster file
  • SMB multicanale: facilita l'aggregazione della larghezza di banda di rete e della tolleranza di errore se sono disponibili più percorsi tra il client e il server
  • SMB diretto: aggiunge il supporto di rete RDMA (Remote Direct Memory Access) per prestazioni elevate, con bassa latenza e uso ridotto della CPU
  • Crittografia: fornisce la crittografia end-to-end e offre protezione da intercettazioni su reti non attendibili
  • Leasing delle directory: migliora i tempi di risposta delle applicazioni negli uffici periferici tramite la cache
  • Ottimizzazione delle prestazioni: ottimizza le operazioni di I/O di lettura/scrittura casuali di piccole dimensioni

La disabilitazione di SMBv2 disattiva le funzionalità seguenti:

  • Combinazione di richieste: supporta l'invio di più richieste SMBv2 come singola richiesta di rete
  • Letture e scritture di dimensioni maggiori: migliora l'uso di reti più veloci
  • Memorizzazione nella cache delle proprietà di cartelle e file: offre ai client la possibilità di mantenere copie locali di cartelle e file
  • Handle permanenti: consente a una connessione di riconnettersi in modo trasparente al server dopo una disconnessione temporanea
  • Miglioramento della firma dei messaggi: utilizza un codice di autenticazione dei messaggi basato su hash (HMAC) con un algoritmo di hash sicuro (SHA) e un digest a 256 bit (HMAC SHA-256) anziché l'algoritmo MD5 (Message-Digest Algorithm 5) come algoritmo di hash
  • Maggiore scalabilità per la condivisione di file: aumenta notevolmente il numero di utenti, condivisioni e file aperti per server
  • 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 massimo di unità di trasmissione (MTU) di grandi dimensioni: supporta l'uso completo di 10 Gigabit Ethernet (GbE)
  • Miglioramento dell'efficienza energetica: consente ai client che hanno file aperti su un server di sospendersi

Il protocollo SMBv2 è stato introdotto in Windows Vista e Windows Server 2008. 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:

Usare PowerShell per rimuovere SMBv1

È possibile usare Get-WindowsOptionalFeature, Disable-WindowsOptionalFeaturee Enable-WindowsOptionalFeature comandi di PowerShell per rilevare, disabilitare e abilitare un client o un server SMBv1. Eseguire i comandi al prompt dei comandi con privilegi elevati.

Nota

Il computer viene 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 il comando Get-SmbServerConfiguration: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Rimuovere SMBv1

SMBv1 non è installato per impostazione predefinita in Windows Server 2019 e versioni successive. Nelle versioni precedenti di Windows Server è possibile usare Server Manager per rimuovere SMBv1:

  1. Nel server da cui si vuole rimuovere SMBv1 aprire Server Manager.

  2. Nel dashboard di Server Manager, in Configurare questo server localeselezionare Aggiungi ruoli e funzionalità.

  3. Nella pagina Prima di iniziare, selezionare Avvia la rimozione guidata ruoli e funzionalità, quindi, nella pagina seguente, selezionare Avanti.

  4. Nella pagina Selezionare il server di destinazione, in pool di serververificare che il server da cui si vuole rimuovere la funzionalità sia selezionato e quindi selezionare Avanti.

  5. Nella pagina Rimozione ruoli server, selezionare Avanti.

  6. Nella pagina Rimuovi funzionalità, deseleziona la casella di controllo di SMB 1.0/CIFS File Sharing Supporte quindi seleziona Avanti.

    Screenshot della pagina Rimuovi funzionalità nel dashboard di Server Manager. Nell'elenco Funzionalità, SMBv1 è evidenziato.

  7. Nella pagina Conferma selezioni di rimozione, verificare che la funzionalità sia elencata, quindi selezionare Rimuovi.

Usare la riga di comando o l'editor del Registro di sistema per gestire i protocolli SMB

A partire da Windows 10 Fall Creators Update e Windows Server 2019, SMBv1 non è più installato per impostazione predefinita. Per altre informazioni, vedere SMBv1 non è installato per impostazione predefinita in Windows 10 versione 1709, Windows Server versione 1709 e versioni successive.

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.

È possibile usare il cmdlet Set-SMBServerConfiguration per abilitare o disabilitare i protocolli SMBv1, SMBv2 e SMBv3 in un componente server. È possibile usare il cmdlet Get-SmbServerConfiguration per recuperare la configurazione del server SMB.

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 ulteriori informazioni, vedere Interrompere l'utilizzo di SMB1.

SMBv2 e SMBv3

  • Rilevare:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Disabilita:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Abilitare:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Abilitare o disabilitare SMB in 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, come illustrato nelle sezioni seguenti.

Usare Windows PowerShell

È possibile usare Get-Item, Get-ItemPropertye cmdlet Set-ItemProperty per rilevare, abilitare e disabilitare i protocolli SMB.

Nota

I comandi nelle sezioni seguenti richiedono PowerShell 2.0 o versione successiva.

SMBv1 su un server SMB
  • Rilevare:

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

    La configurazione predefinita è Enabled. Di conseguenza, non viene creato alcun valore denominato del Registro di sistema, quindi il comando non restituisce un 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 altre informazioni, vedere Interrompi l'uso di SMB1.

SMBv2 e SMBv3 in un 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.

Usare l'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 in un server SMB, aprire Editor del Registro di sistema e passare al seguente percorso della chiave del Registro di sistema:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Configurare un elemento che abbia le seguenti proprietà:

  • Per il nome, usare SMB1.
  • Per il tipo, usare REG_DWORD.
  • Per i dati, usare 0 per Inattivo e 1 per Attivo. Il valore predefinito è 1o Abilitato. In questo caso, non viene creata alcuna chiave del Registro di sistema.

Per abilitare o disabilitare SMBv2 in un server SMB, aprire Editor del Registro di sistema e passare al percorso della chiave del Registro di sistema seguente:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Configurare un elemento con le proprietà seguenti:

  • Per il nome, usare SMB2.
  • Per il tipo, usare REG_DWORD.
  • Per i dati, usare 0 per Disabilitato e 1 per Abilitato. Il valore predefinito è 1o Abilitato. In questo caso, non viene creata alcuna chiave del Registro di sistema.

Nota

 È necessario riavviare il computer dopo aver apportato queste modifiche.

Usare Criteri di gruppo per disabilitare SMBv1

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

SMBv1

È possibile disabilitare SMBv1 in un server SMB configurando il nuovo elemento seguente nel Registro di sistema:

  • Percorso chiave: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Voce di registro: SMB1
  • Tipo di voce: REG_DWORD
  • Dati di immissione: 0, per Disabilitato

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

  1. Aprire la Console di Gestione dei 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 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 sul nodo Registro di sistema, posizionare il cursore su Nuovoe quindi selezionare Elemento del Registro di sistema.

    Screenshot dell'albero della console nella Console Gestione Criteri di Gruppo. Il menu di scelta rapida del Registro di sistema è visibile, con Nuovo evidenziato nel primo menu.

  4. Nella finestra di dialogo Nuove proprietà del Registro di sistema selezionare o immettere i valori seguenti:

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

    Screenshot della finestra di dialogo delle Proprietà del Nuovo Registro. I valori sono visibili nei campi azione, hive, percorso chiave, nome, tipo e dati.

Questa procedura disabilita i componenti server SMBv1. È necessario applicare questo criterio a tutte le workstation, i server e i controller di dominio necessari nel dominio.

Nota

 È possibile impostare filtri di Strumentazione gestione Windows (WMI) per escludere sistemi operativi specifici o per escludere sistemi operativi client o server. Per ulteriori informazioni, vedere Filtri dei criteri di gruppo e Creare filtri WMI per i criteri di gruppo.

Importante

Alcuni sistemi richiedono l'accesso alla cartella SYSVOL o ad altre condivisioni file, ma non supportano SMBv2 o SMBv3. Esempi di tali sistemi includono sistemi Windows legacy e sistemi Linux e partner meno recenti. Prestare attenzione quando si disabilita SMBv1 nei controller di dominio in questi sistemi.

Controllare l'utilizzo di SMBv1

Per determinare quali client tentano di connettersi a un server SMB tramite SMBv1, è possibile abilitare il controllo nei client Windows Server e Windows. Per abilitare o disabilitare il controllo, usare il cmdlet Set-SmbServerConfiguration. Per controllare lo stato di controllo, usare il cmdlet Get-SmbServerConfiguration.

  • Abilitare:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Disabilita:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Rilevare:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

Dopo aver abilitato il controllo SMBv1, è possibile controllare il registro eventi Microsoft-Windows-SMBServer\Audit per verificare gli eventi di accesso. Ogni volta che un client tenta di usare SMBv1 per connettersi a un server, nel log viene visualizzata una voce con ID evento 3000.

Controllare le impostazioni dei criteri di gruppo

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

Screenshot dell'Editor Gestione Criteri di Gruppo del Registro di sistema. Sono visibili tre elementi: DependOnService, SMB1 e Start.

Testare e convalidare i criteri

Dopo aver completato i passaggi di configurazione in Console Gestione Criteri di gruppo, assegnare a Criteri di gruppo il tempo necessario per applicare gli aggiornamenti alle relative impostazioni. 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

Dopo aver testato la politica, riavviare i sistemi di destinazione.