关闭网络上的所有共享文件

关闭网络上的所有共享文件

我正在尝试通过 PowerShell 脚本关闭服务器共享文件夹中所有打开的文件。我发现以下脚本只能关闭一个驱动器 (F:) 上的文件,但是,该服务器有 3 个驱动器 (F:\、G:\、H:),我想全部关闭。

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

有没有办法将丢失的驱动器添加到这个脚本中,或者我必须对每个驱动器分别使用相同的脚本?

我试过了{ $_.Contains( "F:\", "G:\", "H:\" ) },但没有成功

感谢您的帮助!

答案1

您使用的命令不是原生的 PowerShell 命令。但是,PowerShell 确实带有许多用于控制 SMB 连接和共享的功能。

您正在寻找的可能是这样的:

Get-SMBOpenFile | Close-SMBOpenFile -Force

这将关闭通过文件共享打开的所有文件。您还可以管理 SMB 连接 (Get-SMBConnection) 和其他内容。Get-Command *smb*您将获得所有 SMB 相关命令的列表。

相关内容