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
}

 

posted @ 2019-07-24 19:27  Dream1699  阅读(762)  评论(0编辑  收藏  举报