Fechar todos os arquivos compartilhados na rede [duplicado]

5

Estou tentando fechar todos os arquivos abertos nas pastas compartilhadas de um servidor por meio do script do PowerShell. Eu encontrei o seguinte script que apenas fechar arquivos em uma unidade (F :), no entanto, este servidor tem 3 unidades (F: \, G: \, H :) que eu quero fechar tudo.

net files | 
    where   { $_.Contains( "F:\" ) } |
    foreach { $_.Split( ' ' )[0] }   |
    foreach { net file $_ /close }

Existe uma maneira de adicionar unidades ausentes neste script ou eu tenho que usar o mesmo script separadamente para cada unidade?

Eu tentei { $_.Contains( "F:\", "G:\", "H:\" ) } , mas não funcionou

Obrigado pela sua ajuda!

    
por eccoripo 29.10.2018 / 16:14

1 resposta

8

O comando que você está usando não é um comando nativo do PowerShell. No entanto, o PowerShell vem com muitas funções para controlar conexões e compartilhamentos SMB.

O que você está procurando pode ser isso:

Get-SMBOpenFile | Close-SMBOpenFile -Force

Isso fechará todos os arquivos abertos por meio de compartilhamentos de arquivos. Você também pode gerenciar SMB Connections (Get-SMBConnection) e outras coisas. Com Get-Command *smb* , você obterá uma lista de todos os comandos relacionados a SMB.

    
por 29.10.2018 / 16:21