Partilhar via


Detetar, habilitar e desabilitar SMBv1, SMBv2 e SMBv3 no Windows

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

Se desativar ou remover o SMBv1, poderá encontrar problemas de compatibilidade com computadores ou software antigos. O SMBv1 tem vulnerabilidades de segurança significativas e, recomendamos vivamente que não o utilize. SMBv1 não é instalado por padrão em nenhuma edição do Windows 11 ou Windows Server 2019 e versões posteriores. O SMBv1 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 SMBv1, atualize o servidor SMB que ainda o exige. Para obter uma lista de parceiros que exigem o SMBv1 e suas atualizações que removem o requisito, consulte SMB1 Product Clearinghouse.

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

Recomendamos manter o SMBv2 e o SMBv3 ativados, mas você pode achar útil desativar um temporariamente para solução de problemas. Para obter mais informações, consulte Usar a linha de comando ou o Editor do Registro para gerenciar protocolos SMB.

A desativação do SMBv3 desativa a seguinte funcionalidade:

  • Failover transparente: fornece aos clientes uma maneira de reconectar-se sem interrupção aos nós do cluster durante a manutenção ou o failover
  • Expansão: fornece acesso simultâneo a dados compartilhados em todos os nós de cluster de arquivos
  • SMB Multichannel: Facilita a agregação da largura de banda da rede e a tolerância a falhas se vários caminhos estiverem disponíveis entre o cliente e o servidor
  • SMB Direct: Adiciona suporte de rede RDMA (acesso remoto direto à memória) para alto desempenho, com baixa latência e baixo uso da CPU
  • Criptografia: fornece criptografia de ponta a ponta e oferece proteção contra espionagem em redes não confiáveis
  • Locação de diretórios: melhora os tempos de resposta de aplicativos em filiais por meio de cache
  • Otimização de desempenho: otimiza pequenas operações aleatórias de E/S de leitura/gravação

A desativação do SMBv2 desativa a seguinte funcionalidade:

  • Composição de solicitações: suporta o envio de várias solicitações SMBv2 como uma única solicitação de rede
  • Leituras e gravações maiores: melhora o uso de redes mais rápidas
  • Armazenamento em cache de propriedades de pastas e arquivos: oferece aos clientes a capacidade de manter cópias locais de pastas e arquivos
  • Alças duráveis: fornecem uma maneira de uma conexão se reconectar de forma transparente ao servidor após uma desconexão temporária
  • Melhoria na assinatura de mensagens: utiliza um algoritmo de hash seguro baseado em código de autenticação de mensagem (HMAC) com um digest de 256 bits (HMAC SHA-256) em vez do Algoritmo 5 Message-Digest (MD5) como algoritmo de hash.
  • Escalabilidade aprimorada para compartilhamento de arquivos: aumenta consideravelmente o número de usuários, compartilhamentos e arquivos abertos por servidor
  • Suporte para links simbólicos
  • Modelo de arrendamento de oplock do cliente: reduz a quantidade de dados transferidos entre o cliente e o servidor, otimizando o desempenho em redes com alta latência e aumentando a escalabilidade do servidor SMB.
  • Grande unidade máxima de transmissão (MTU) suporte: Suporta o uso total de 10 Gigabit Ethernet (GbE)
  • Eficiência energética melhorada: fornece uma forma para os clientes que têm ficheiros abertos num servidor entrarem em modo de suspensão.

O protocolo SMBv2 foi introduzido no Windows Vista e no Windows Server 2008. O protocolo SMBv3 foi introduzido no Windows 8 e no Windows Server 2012. Para obter mais informações sobre os recursos SMBv2 e SMBv3, consulte os seguintes artigos:

Usar o PowerShell para remover o SMBv1

Você pode usar os comandos Get-WindowsOptionalFeature, Disable-WindowsOptionalFeature e Enable-WindowsOptionalFeature PowerShell para detetar, desabilitar e habilitar um cliente ou servidor SMBv1. Execute os comandos em um prompt de comando elevado.

Note

O computador é reiniciado depois de executar os comandos do PowerShell para desabilitar ou habilitar o SMBv1.

  • Detect:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Disable:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Enable:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Tip

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

Remover SMBv1

O SMBv1 não é instalado por padrão no Windows Server 2019 e versões posteriores. Em versões anteriores do Windows Server, você pode usar o Gerenciador do Servidor para remover o SMBv1:

  1. No servidor do qual pretende remover o SMBv1, abra o Gestor de Servidor.

  2. No Painel do Gestor de Servidor, em "Configurar este servidor local", selecione "Adicionar funções e funcionalidades".

  3. Na página Antes de começar, selecione Iniciar o Assistente para Remover Funções e Recursose, na página seguinte, selecione Avançar.

  4. Na página Selecionar servidor de destino, em Pool de Servidores, verifique se o servidor do qual o utilizador deseja remover a funcionalidade está selecionado e selecione Avançar.

  5. Na página Remover funções do servidor, selecione Avançar.

  6. Na página Remover recursos , desmarque a caixa de seleção Suporte ao compartilhamento de arquivos SMB 1.0/CIFS e selecione Avançar.

    Captura de tela da página Remover recursos no painel do Gerenciador do Servidor. Na lista Recursos, o SMBv1 é destacado.

  7. Na página Confirmar seleções de remoção, confirme que o recurso está listado e, em seguida, selecione Remover.

Use a linha de comando ou o Editor do Registro para gerenciar protocolos SMB

A partir do Windows 10 Fall Creators Update e do Windows Server 2019, o SMBv1 não é mais instalado por padrão. Para obter mais informações, consulte o SMBv1 não está instalado por padrão no Windows 10 versão 1709, Windows Server versão 1709 e versões posteriores.

Quando você habilita ou desabilita o SMBv2 no Windows 8 ou no Windows Server 2012, o SMBv3 também é habilitado ou desabilitado. Este comportamento ocorre porque esses protocolos partilham a mesma pilha.

Você pode usar o cmdlet Set-SMBServerConfiguration para habilitar ou desabilitar os protocolos SMBv1, SMBv2 e SMBv3 em um componente de servidor. Você pode usar o cmdlet Get-SmbServerConfiguration para recuperar a configuração do servidor SMB.

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

SMBv1

  • Detect:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Disable:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Enable:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Para obter mais informações, consulte Parar de usar o SMB1.

SMBv2 e SMBv3

  • Detect:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Disable:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Enable:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Habilitar ou desabilitar o SMB no Windows 7, Windows Server 2008 R2, Windows Vista e Windows Server 2008

Para habilitar ou desabilitar protocolos SMB em um Servidor SMB que executa o Windows 7, Windows Server 2008 R2, Windows Vista ou Windows Server 2008, use o Windows PowerShell ou o Editor do Registro, conforme explicado nas seções a seguir.

Utilizar o Windows PowerShell

Você pode usar os cmdlets Get-Item, Get-ItemProperty e Set-ItemProperty para detetar, habilitar e desabilitar protocolos SMB.

Note

Os comandos nas seções a seguir exigem o PowerShell 2.0 ou posterior.

SMBv1 em um servidor SMB
  • Detect:

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

    A configuração padrão é Enabled. Como resultado, nenhum valor nomeado do Registro é criado, portanto, o comando não retorna um valor SMB1.

  • Disable:

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

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

Note

Você deve reiniciar o computador depois de fazer essas alterações.

Para obter mais informações, consulte Parar de usar o SMB1.

SMBv2 e SMBv3 em um servidor SMB
  • Detect:

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

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

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

Note

Você deve reiniciar o computador depois de fazer essas alterações.

Usar o Editor do Registro

Important

Siga cuidadosamente os passos nesta secção. Poderão ocorrer problemas graves se modificar o registo incorretamente. Antes de o modificar, criar uma cópia de segurança do registo para restauração caso ocorram problemas.

Para habilitar ou desabilitar o SMBv1 em um servidor SMB, abra o Editor do Registro e vá para o seguinte caminho de chave do Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Configure uma entrada que tenha as seguintes propriedades:

  • Para o nome, use SMB1.
  • Para o tipo, use REG_DWORD.
  • Para os dados, use 0 para Desativado e 1 para Habilitado. O valor padrão é 1 ou Enabled. Nesse caso, nenhuma chave do Registro é criada.

Para habilitar ou desabilitar o SMBv2 em um servidor SMB, abra o Editor do Registro e vá para o seguinte caminho de chave do Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Configure uma entrada que tenha as seguintes propriedades:

  • Para o nome, use SMB2.
  • Para o tipo, use REG_DWORD.
  • Para os dados, use 0 para Desativado e 1 para Habilitado. O valor padrão é 1 ou Enabled. Nesse caso, nenhuma chave do Registro é criada.

Note

 Você deve reiniciar o computador depois de fazer essas alterações.

Utilizar a Política de Grupo para desativar o SMBv1

Esta seção mostra como usar a Diretiva de Grupo para desabilitar o SMBv1. Você pode usar esse método em várias versões do Windows.

SMBv1

Pode desativar o SMBv1 num servidor SMB configurando o seguinte novo item no registo:

  • Caminho principal: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Entrada do registo: SMB1
  • Tipo de entrada: REG_DWORD
  • Dados de entrada: 0, para deficientes

Para usar a Diretiva de Grupo para configurar esse item, execute as seguintes etapas:

  1. Abra a Consola de Gerenciamento de Diretiva de Grupo. Clique com o botão direito do mouse no objeto de Diretiva de Grupo (GPO) que deve conter o novo item de preferência e selecione Editar.

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

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

    Captura de ecrã da árvore da consola na Consola de Gestão de Políticas de Grupo. Os menus de atalho do Registro são visíveis, com Novo realçado no primeiro menu.

  4. Na caixa de diálogo Novas Propriedades do Registro, selecione ou insira os seguintes valores:

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

    Captura de tela da caixa de diálogo Novas Propriedades do Registro. Os valores são visíveis nos campos ação, colmeia, caminho da chave, nome, tipo e dados.

Este procedimento desativa os componentes do servidor SMBv1. Você deve aplicar essa política a todas as estações de trabalho, servidores e controladores de domínio necessários no domínio.

Note

 Você pode definir filtros WMI (Instrumentação de Gerenciamento do Windows) para excluir sistemas operacionais específicos ou sistemas operacionais cliente ou servidor. Para obter mais informações, consulte Filtragem de Diretiva de Grupo e Criar filtros WMI para o GPO .

Important

Alguns sistemas requerem acesso à pasta SYSVOL ou a outras partilhas de ficheiros, mas não suportam SMBv2 ou SMBv3. Exemplos de tais sistemas incluem sistemas Windows legados e sistemas Linux e parceiros mais antigos. Tenha cuidado ao desativar o SMBv1 em controladores de domínio nesses sistemas.

Auditar o uso do SMBv1

Para determinar quais clientes tentam se conectar a um servidor SMB usando o SMBv1, você pode habilitar a auditoria em clientes Windows Server e Windows. Para habilitar ou desabilitar a auditoria, use o cmdlet Set-SmbServerConfiguration . Para verificar o status da auditoria, use o cmdlet Get-SmbServerConfiguration .

  • Enable:

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Disable:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Detect:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

Depois de habilitar a auditoria SMBv1, você pode verificar se há eventos de acesso no log de eventos Microsoft-Windows-SMBServer\Audit. Cada vez que um cliente tenta usar o SMBv1 para se conectar a um servidor, uma entrada que tem uma ID de evento de 3000 aparece no log.

Verificar as definições da Política de Grupo

Se todas as configurações estiverem no mesmo GPO, o Gerenciamento de Diretiva de Grupo exibirá as seguintes configurações:

Captura de ecrã do registo do Editor de Gestão de Políticas de Grupo. Três itens são visíveis: DependOnService, SMB1 e Start.

Testar e validar a política

Depois de concluir as etapas de configuração no Console de Gerenciamento de Diretiva de Grupo, dê tempo à Diretiva de Grupo para aplicar as atualizações às suas configurações. Se necessário para teste, execute gpupdate /force em um prompt de comando e, em seguida, revise os computadores de destino para certificar-se de que as configurações do Registro são aplicadas corretamente. Certifique-se de que o SMBv2 e o SMBv3 estão funcionando para todos os outros sistemas no ambiente.

Note

Depois de testar a política, reinicie os sistemas de destino.