Na primeira parte aprendemos como gerenciar o compartilhamento de rede utilizando o Windows Powershell, agora chega a vez de aprender como gerenciar sessões SMB.
Se você perdeu a primeira parte, acesse aqui o artigo.
Gerencie sessões SMB
Independentemente de como você fizer o compartilhamento de arquivos, uma vez que você cria você poderá gerenciar e monitorar o seu uso utilizando o cmdlets do Windows Powershell.
Por exemplo para saber qual são os clientes que estão conectados aos compartilhamentos do servidor execute o seguinte comando:
Comando:
1 |
Get-SmbSession |
Resposta do comando:
Com as informações você pode encerrar uma sessão específica usando o cmdlet Close-SmbSession, basta especificar utilizando a ID da Session (Sessão).
Comando:
1 |
close-smbsession -sessionid 652835029845 |
Por padrão, o cmdlet exibirá um aviso, solicitando que você confirme que deseja encerrar a sessão.
Se você incluir o parâmetro -Force à linha de comando nenhum aviso é exibido.
Comando:
1 |
close-smbsession -sessionid 652835029845 - Force |
Podemos fechar sessões baseando-se nas outras informações de saída, como IP e usuário.
Por exemplo, fecha uma seção através do IP, basta executar o seguinte cmdlet:
Comando:
1 |
close-smbsession -ClientComputerName 172.16.0.101 -Force |
Resposta do comando:
Você também pode saber quais os arquivos que os clientes estão acessando atualmente como o seguinte cmdlet Get-SmbOpenFile.
Comando:
1 |
Get-SmbOpenFile |
Resposta do comando:
Podemos também fechar um arquivo aberto com o seguinte cmdlet Close-SmbOpenfile, como demostrado no próximo exemplo:
Comando:
1 |
close-smbopenfile -fileid 670014898305 |
Resposta do comando:
Repare que o arquivo de Fileid 670014898305 já não aparece mais após executar o comando Get-SmbOpenFile.
Remover um compartilhamento
Se deseja encerrar totalmente um compartilhamento, finalizando todas as sessões, use o cmdlet Remove-SmbShare, especificando o nome do compartilhamento na linha de comando como demostrado neste exemplo:
Comando:
1 |
remove-smbshare -name Dados |
Resposta do comando:
Para verificar quais os compartilhamentos de rede estão disponíveis use o cmdlet Get-SmbShare.
Comando:
1 |
Get-SmbShare |
Resposta do comando:
Defina configurações de servidor e cliente SMB usando o Windows PowerShell
Podemos criar um compartilhamento utilizando o Server Manager (Gerenciador de Servidor) ou utilizando o Windows Powershell, como demostrado no artigo anterior, Utilizando Compartilhamento e Sessão SMB na “unha” – Parte 1, mas podemos modificar as definições de configuração de um compartilhamento a qualquer momento após a sua criação usando outros cmdlets do módulo SmbShare do Windows Powershell.
Defina permissões de compartilhamento
É possível modificar as permissões de um compartilhamento específico usando os cmdlets demostrados a seguir:
Para exibir a lista de controle de acesso do compartilhamento específico execute o seguinte cmdlet:
Comando:
1 |
Get-SmbShareAccess -name Dados2 |
Resposta do comando:
Já para adicionar à ACL uma entrada de controle de acesso do tipo Allow (Permitir) para o usuário User3 no compartilhamento de nome Dados2 execute esse cmdlet:
Comando:
1 |
grant-smbshareaccess -name Dados2 -accountname CONTOSO\User3 -accessright full |
Resposta do comando:
Já para remover do compartilhamento de nome Dados2 todas as permissões do tipo Allow pertencentes à entidade de segurança específica de nome User2 execute o seguinte cmdlet:
Comando:
1 |
revoke-smbshareaccess -name Dados2 -accountname CONTOSO\User2 |
Resposta do comando:
Para adicionar à ACL uma entrada de controle de acesso do tipo Deny (Negar) para o compartilhamento de nome Dados3 pertencentes à entidade de segurança específica de nome User3 execute o seguinte cmdlet:
Comando:
1 |
block-smbshareaccess -name Dados3 -accountname CONTOSO\User3 |
Resposta do comando:
Agora para remover do compartilhamento de nome Dados3 uma ACL de entrada de controle de acesso do tipo Deny (Negar) para à entidade de segurança específica de nome User3 execute o seguinte cmdlet:
Comando:
1 |
unblock-smbshareaccess -name Dados3 -accountname CONTOSO\User3 |
Resposta do comando:
Defina configurações de servidor SMB
O módulo SmbShare do Windows Powershell contido no Windows Server 2012 introduziu o cmdlet Set-SmbServerConfiguration, que permite que os administradores definam várias implementações do servidor SMB. Para exibir todas as definições de configuração de servidor atuais, execute o seguinte cmdlet:
Comando:
1 |
Get-SmbServerConfiguration |
Protocolo SMB – Dicas
Por exemplo, podemos especificar que versões do protocolo SMB o servidor deve usar executando comandos como os seguintes:
Comandos
1 2 |
set-SmbServerConfiguration -enablesmb1protocol $false set-SmbServerConfiguration -enablesmb2protocol $false |
O Windows Server 2016 usa o SMB versão 3, mas as versões anteriores estão disponíveis para dar suporte a clientes de versões anteriores. Sempre é bom ressaltar que não há um parâmetro de separado que ative o SMB versão 3 individualmente, porque a versão 3 não pode ser executada sem a versão 2.
As versões 2 e 3 fornecem muitos recursos que podem melhorar o desemprenho do protocolo, inclusive criptografia de dados e agregação de links multicanal. A desativação do SMB versão 1 como o primeiro comando set-SmbServerConfiguration -enablesmb1protocol $false assegurará que seus clientes estejam usando versões mais recente do SMB e se beneficiando dos novos recursos. O SMB versão 1 não é necessário a menos que você tenha clientes executando o Windows XP ou versão anterior.
Observação: Sempre que poder desabilite o protocolo SMB versão 1 por há uma vulnerabilidade grave. Para saber mais acesso o link abaixo.
https://docs.microsoft.com/pt-br/security-updates/securitybulletins/2017/ms17-010
O último comando set-SmbServerConfiguration -enablesmb2protocol $false
desativa o SMB versões 2 e 3, permitindo que o servidor use apenas o SMB original da versão 1. Isso desativa vários recursos avançados do SMB, o que pode ser útil temporariamente para fins de resolução de problemas.
Quando seu servidor estiver executando o SMB versão 3, você poderá ativar a criptografia de sessões SMB para o servidor inteiro ou para um compartilhamento específico dele, usando os comandos a seguir:
Criptografia do servidor inteiro.
Comando:
1 |
set-smbserverconfiguration -encryptdata $true |
Criptografia para um compartilhamento específico.
Comando:
1 |
set-smbserverconfiguration -name data -encryptdata $true |
Quando a criptografia é ativada, o comportamento padrão do servidor é rejeitar uma conexão de qualquer cliente que não dê suporte à criptografia do SMB versão 3. Você pode sobrepor esse comportamento usando o comando a seguir:
Comando:
1 |
set-SmbServerConfiguration -rejectunencryptedaccess $false |
Há vários outros comandos que você pode usar com o cmdlet Set-SmbServerConfiguration. Para exibir os parâmetros e suas funções, execute esse comando a seguir:
Comando:
1 |
get-help set-smbserverconfiguration -detailed |
Resposta do comando:
Defina configurações de cliente SMB
Assim como você pode definir configurações de servidor SMB usando o Windows Powershell, também podemos definir configurações de cliente SMB.
Execute o cmdlet Get-SmbClientConfiguration exibi uma lista de configurações disponíveis, como mostrado abaixo:
Comando:
1 |
Get-SmbClientConfiguration |
Resposta do comando:
Como ocorre como os parâmetros de configuração do servidor SMB, a maioria dessas configurações não requer modificação para uso normal. No entanto, se estiver examinando as melhorias das versões mais novas do SMB, poder ser interessante desativar certos recursos temporariamente para fins de teste.
Um bom exemplo é a nova funcionalidade multicanal do SMB pode permitir que seus computadores vivenciem maior throughput de comunicação e tolerância a falhas, mas o recurso tem requisitos de hardware tanto do cliente quanto para o servidor, como múltiplos adaptadores de rede ou adaptadores configurados para usar o NIC Teaming.
O SMB multicanal é ativado por padrão, se seus computadores estiverem equipados para usá-los, eles o usarão. Contudo, se você tiver dúvidas se p recurso está operando em seus sistemas, pode testá-lo desativando o multicanal com o comando a seguir:
Comando:
1 |
set-smbclientconfiguration -enablemultichannel $false |
Resposta do comando:
Se suas conexões SMB ficaram lentas demais por causa deste comando, isso significa que o multicanal estava funcionando e você pode ativá-lo novamente alterando de $false para $true.
Se não houver mudança no desempenho do SMB como o multicanal desativado, deve haver um problema em algum local que você deve verificar e resolver.
Com este último cmdlet terminamos a série de dois artigos sobre Compartilhamento e Sessão SMB na “unha”.
Muito obrigado por prestigiar o meu trabalho, até o próximo artigo!
Inscreva-se no meu canal do YouTube ative o sininho para receber as notificações!
Há 10 anos atuo na área de TI focado em suporte e administração de infraestrutura, especializado em plataformas Microsoft. Tenho grande experiência em troubleshooting, implantação, configuração e administração de funções e recursos de tecnologia Microsoft. Formado em Redes de Computadores pela faculdade Estácio de Sá de Belo Horizonte.
Comecei a compartilhar o meu conhecimento no ano de 2012, fazendo artigos e vídeos para o meu Blog. Em 2017 comecei a escrever artigos para o portal Cooperati, em 2020 fui premiado como Microsoft MVP, na categoria Cloud and Datacenter Management.
Sou apaixonado em compartilhar o meu conhecimento. Meu lema é: O conhecimento só é válido quando compartilhado.