我使用了很多文件夹共享,但有一些锁定文件已被其他进程打开.
我需要关闭这些文件.到目前为止,我一直在使用MMC – 系统工具 – 共享文件夹 – 打开文件.
如果我可以使用PowerShell过滤OpenFiles.exe检索到的列表/表,并且一旦我得到文件ID用net file / close关闭它,或者其他一些PS本地意味着类似的效果,那将会更方便.
Get-SmbOpenFile和Close-SmbOpenFile将为您完成工作.
登录到您的文件服务器,启动PowerShell.使用Get-SmbOpenFile显示文件服务器上的所有打开文件.这些文件将与以下表格标题一起显示
FileId SessionId Path ShareRelativePath ClientComputerName ClientUserName
Close-SmbOpenFile -FileId 4415226383589
如果您知道Excel文件是问题,则可以缩小搜索所有具有.XLSX扩展名的打开文件的范围.
Get-SmbOpenFile | Where-Object -Property sharerelativepath -match ".XLSX"
Get-SmbOpenFile | Close-SmbOpenFile
如果要关闭一个或多个打开且与文件扩展名“.XLSX”匹配的文件.
Get-SmbOpenFile | Where-Object -Property sharerelativepath -match ".XLSX" | Close-SmbOpenFile -Force
****注****根据TechNet文章“Close-SMBOpenFile cmdlet强制关闭由服务器消息块(SMB)服务器的某个客户端打开的文件.应该小心使用此cmdlet,因为它如果客户端在文件关闭之前没有将所有文件修改刷回服务器,则可能导致数据丢失到文件被关闭的客户端.“
有关CMDlet的更多信息
GET-SmbOpenFile
https://technet.microsoft.com/en-us/library/jj635701(v=wps.620).aspx
特写SmbOpenFile
https://technet.microsoft.com/en-us/library/jj635721(v=wps.620).aspx