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

ecc*_*ipo 5 powershell network-share shell-scripting

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

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

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

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

感谢您的帮助!

Tob*_*ias 8

您使用的命令不是本机 PowerShell 命令。但是,PowerShell 确实提供了许多功能来控制 SMB 连接和共享。

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

Get-SMBOpenFile | Close-SMBOpenFile -Force
Run Code Online (Sandbox Code Playgroud)

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


归档时间:

查看次数:

1998 次

最近记录:

7 年,3 月 前