PowerShell命令关闭长时间被占用的共享文件
Powershell命令监控被打开的共享文件,如果超过一分钟还没被释放,则自动强行关闭文件占用。
可以用nssm做成Windows Services,自动运行。
while ($true) { function closeopenfile { foreach($file in get-smbopenfile | ? {$_.Path -like "*.tar" -and -not ($_.ClientUserName -like "JABIL\SV*")}) { $m = Get-Item $file.Path | Where{$_.LastWriteTime -lt (Get-Date).AddMinutes(-1)} | measure $m.Count if($m.Count -eq 1) {close-smbopenfile -SessionId $file.SessionId -Confirm:$false} } } closeopenfile Start-Sleep -Seconds 60 }