Como detectar, habilitar e desabilitar SMBv1, SMBv2 e SMBv3 no Windows

Aplica-se 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

Este artigo descreve como habilitar e desabilitar o SMB (Server Message Block) versão 1 (SMBv1), o SMB versão 2 (SMBv2) e o SMBv3 (SMB versão 3) nos componentes do servidor e do cliente SMB.

Embora desabilitar ou remover o SMBv1 possa causar alguns problemas de compatibilidade com computadores ou softwares antigos, o SMBv1 tem vulnerabilidades de segurança significativas e recomendamos que você não o use. O SMB 1.0 não é instalado por padrão em nenhuma edição do Windows 11 ou do Windows Server 2019 e posterior. O SMB 1.0 também não é instalado por padrão no Windows 10, exceto nas edições Home e Pro. Recomendamos que, em vez de reinstalar o SMB 1.0, você atualize o servidor SMB que ainda o requer. Para obter uma lista de terceiros que exigem o SMB 1.0 e as respectivas atualizações que removem o requisito, examine o Centro de roteamento de produtos do SMB1.

Desabilitar o SMBv2 ou o SMBv3 para solução de problemas

É recomendável manter o SMBv2 e o SMBv3 habilitados, mas talvez seja útil desabilitar um deles temporariamente para solucionar problemas. Para saber mais, confira Como detectar o status, habilitar e desabilitar protocolos SMB no servidor SMB.

No Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012, desabilitar o SMBv3 desativa a seguinte funcionalidade:

  • Failover Transparente – os clientes se reconectam sem interrupção aos nós de cluster durante a manutenção ou o failover
  • Escalabilidade Horizontal – acesso simultâneo a dados compartilhados em todos os nós de cluster de arquivos
  • Multichannel – agregação de largura de banda da rede e tolerância a falhas da rede se vários caminhos estiverem disponíveis entre o cliente e o servidor
  • SMB Direct – adiciona suporte à rede RDMA para alto desempenho, com baixa latência e baixo uso da CPU
  • Criptografia – Fornece criptografia de ponta a ponta e protege contra interceptações em redes não confiáveis
  • Directory Leasing – melhora os tempos de resposta de aplicativos nas filiais por meio do cache
  • Otimizações de desempenho – otimizações para pequenas E/S aleatórias de leitura/gravação

No Windows 7 e no Windows Server 2008 R2, desabilitar o SMBv2 desativa a seguinte funcionalidade:

  • Composição de solicitação – permite o envio de várias solicitações do SMBv2 como uma única solicitação de rede
  • Maiores leituras e gravações – melhor uso de redes mais rápidas
  • Armazenamento em cache de propriedades de arquivo e pasta – os clientes mantêm cópias locais de pastas e arquivos
  • Identificadores duráveis – permite que a conexão se reconecte de forma transparente ao servidor se houver uma desconexão temporária
  • Assinatura de mensagens aprimorada – HMAC SHA-256 substitui MD5 como algoritmo de hash
  • Melhor escalabilidade para compartilhamento de arquivos – aumento significante no número de usuários, compartilhamentos e arquivos abertos por servidor
  • Suporte para links simbólicos
  • Modelo de concessão de oplock do cliente – limita os dados transferidos entre o cliente e o servidor, melhorando o desempenho em redes de alta latência e aumentando a escalabilidade do servidor SMB
  • Suporte a MTU grande – para uso completo de 10 GbE (Gigabit Ethernet)
  • Eficiência energética aprimorada – os clientes que têm arquivos abertos em um servidor podem entrar em suspensão

O protocolo SMBv2 foi introduzido no Windows Vista e no Windows Server 2008, enquanto o protocolo SMBv3 foi introduzido no Windows 8 e no Windows Server 2012. Para saber mais sobre esses recursos do SMBv2 e do SMBv3, confira seguintes artigos:

Como remover o SMBv1 por meio do PowerShell

Estas são as etapas para detectar, desabilitar e habilitar o cliente e o servidor SMBv1 usando comandos do PowerShell com elevação.

Observação

O computador será reiniciado depois que você executar os comandos do PowerShell para desabilitar ou habilitar o SMBv1.

  • Detectar:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Desabilite:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Habilitar:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Dica

Você pode detectar o status do SMBv1, sem elevação, executando: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: método Gerenciador de Servidores

Server Manager - Dashboard method

Para remover o SMBv1 do Windows Server:

  1. No Painel do Gerenciador do Servidor do servidor em que você deseja remover o SMBv1, em Configurar este servidor local, selecione Adicionar funções e recursos.
  2. Na página Antes de começar, selecione Iniciar o Assistente de Remoção de Funções e Recursos e, na página seguinte, selecione Avançar.
  3. Na página Selecionar o servidor de destino em Pool de Servidores, verifique se o servidor do qual você quer remover o recurso está selecionado e, em seguida, selecione Avançar.
  4. Na página Remover funções de servidor, selecione Avançar.
  5. Na página Remover recursos, desmarque a caixa de seleção de Suporte para Compartilhamento de Arquivos SMB 1.0/CIFS e selecione Avançar.
  6. Na página Confirmar as seleções de remoção, confirme se o recurso está listado e, em seguida, selecione Remover.

Windows 8.1, Windows 10 e Windows 11: método Adicionar ou Remover Programas

Add-Remove Programs client method

Para desabilitar o SMBv1 para os sistemas operacionais mencionados:

  1. No Painel de Controle, selecione Programas e Recursos.
  2. Em Página Inicial do Painel de Controle, selecione Ativar ou desativar recursos do Windows para abrir a caixa Recursos do Windows.
  3. Na caixa Recursos do Windows, role a lista para baixo, desmarque a caixa de seleção de Suporte para Compartilhamento de Arquivos SMB 1.0/CIFS e selecione OK.
  4. Depois que o Windows aplicar a alteração, na página de confirmação, selecione Reiniciar agora.

Como detectar o status, habilitar e desabilitar os protocolos SMB

Observação

Quando você habilitar ou desabilitar o SMBv2 no Windows 8 ou no Windows Server 2012, o SMBv3 também será habilitado ou desabilitado. Esse comportamento ocorre porque esses protocolos compartilham a mesma pilha.

O Windows 8 e o Windows Server 2012 introduziram o novo cmdlet Set-SMBServerConfiguration do Windows PowerShell. O cmdlet permite habilitar ou desabilitar os protocolos SMBv1, SMBv2 e SMBv3 no componente do servidor.

Não é necessário reiniciar o computador depois de executar o cmdlet Set-SMBServerConfiguration.

SMBv1

  • Detectar:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Desabilite:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Habilitar:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Para saber mais, confira Armazenamento de servidores na Microsoft.

SMB v2/v3

  • Detectar:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Desabilite:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Habilitar:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

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

Para habilitar ou desabilitar os protocolos SMB em um servidor SMB que esteja executando o Windows 7, o Windows Server 2008 R2, o Windows Vista ou o Windows Server 2008, use o Windows PowerShell ou o Editor do Registro.

Métodos adicionais do PowerShell

Observação

Este método requer o PowerShell 2.0 ou posterior.

SMBv1 no Servidor SMB

Detectar:

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

Configuração padrão = Habilitado (nenhum valor nomeado do Registro é criado), portanto, nenhum valor SMB1 será retornado

Desabilite:

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

Habilitar:

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

Nota É necessário reiniciar o computador após fazer essas alterações. Para saber mais, confira Armazenamento de servidores na Microsoft.

SMBv2/v3 no Servidor SMB

Detectar:

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

Desabilite:

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

Habilitar:

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

Observação

É necessário reiniciar o computador após fazer essas alterações.

Editor do Registro

Importante

Siga as etapas nesta seção com cuidado. Problemas sérios podem ocorrer se você modificar o Registro incorretamente. Antes de modificá-lo, faça backup do Registro para a restauração em caso de problemas.

Para habilitar ou desabilitar o SMBv1 no servidor SMB, configure a seguinte chave do Registro:

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)

Para habilitar ou desabilitar o SMBv2 no servidor SMB, configure a seguinte chave do Registro:

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)

Observação

 É necessário reiniciar o computador após fazer essas alterações.

Desabilitar o SMBv1 usando a Política de Grupo

Esta seção apresenta como usar a Política de Grupo para desabilitar o SMBv1. É possível usar esse método em diferentes versões do Windows.

SMBv1

O procedimento configura o seguinte item novo no Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • Entrada do Registro: SMB1
  • REG_DWORD: 0 = Desabilitado

Para usar Política de Grupo para configurar isso, siga estas etapas:

  1. Abra o Console de Gerenciamento de Diretiva de Grupo. Clique com o botão direito no GPO (Objeto de Diretiva de Grupo) que deve conter o novo item de preferência e clique em Editar.

  2. Na árvore de console em Configuração do Computador, expanda a pasta Preferências e, em seguida, expanda a pasta Configurações do Windows.

  3. Clique com o botão direito do mouse no nó Registro, aponte para Novo e selecione Item do Registro.

    Registry - New - Registry Item

Na caixa de diálogo Novas Propriedades do Registro, selecione o seguinte:

  • Ação: Criar
  • Hive: HKEY_LOCAL_MACHINE
  • Caminho da Chave: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Nome do valor: SMB1
  • Tipo de valor: REG_DWORD
  • Dados do valor: 0

New Registry Properties - General

Esse procedimento desabilita os componentes do Servidor SMBv1. Essa Política de Grupo deve ser aplicado a todas as estações de trabalho, servidores e controladores de domínio necessários no domínio.

Observação

 Os filtros WMI também podem ser definidos para excluir sistemas operacionais sem suporte ou exclusões selecionadas, como o Windows XP.

Importante

Tenha cuidado ao fazer essas alterações em controladores de domínio nos quais o Windows XP herdado ou sistemas Linux e de terceiros mais antigos (que não dão suporte a SMBv2 ou SMBv3) exigem acesso ao SYSVOL ou a outros compartilhamentos de arquivos em que o SMB v1 está sendo desabilitado.

Auditar o uso do SMBv1

Para determinar quais clientes estão tentando se conectar a um servidor SMB com o SMBv1, é possível habilitar a auditoria no Windows Server 2016, no Windows 10 e no Windows Server 2019. Também é possível auditar no Windows 7 e no Windows Server 2008 R2 se a atualização mensal de maio de 2018 estiver instalada; e no Windows 8.1 e no Windows Server 2012 R2 se a atualização mensal de julho de 2017 estiver instalada.

  • Habilitar:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Desabilite:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Detectar:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

Quando a auditoria de SMBv1 estiver habilitada, o evento 3000 aparecerá no log de eventos "Microsoft-Windows-SMBServer\Audit", identificando cada cliente que tenta conectar ao SMBv1.

Resumo

Se todas as configurações estiverem no mesmo GPO, o Gerenciamento de Política de Grupo exibirá as configurações a seguir.

Group Policy Management Editor - Registry

Teste e validação

Após concluir as etapas de configuração neste artigo, permita que a política replique e atualize. Conforme necessário para testes, execute gpupdate /force em um prompt de comando e examine os computadores de destino para garantir que as configurações do Registro sejam aplicadas corretamente. Verifique se o SMBv2 e o SMBv3 estão funcionando para todos os outros sistemas no ambiente.

Observação

Não se esqueça de reiniciar os sistemas de destino.