相关疑难解决方法(0)

检查目录中的锁定文件并找到锁定应用程序

我想创建一个 PowerShell 脚本,该脚本将查找在提供的目录中锁定的任何文件并返回锁定该文件的应用程序/进程。

我发现了一个脚本,它通过一个目录,当它找到一个锁定的文件时,它会停止并报告文件被锁定。

Function Test-Lock{
    param(
    [parameter(ValueFromPipeline=$true)]
    $Path
    )
    Process {
        if($Path.Attributes -ne 'Directory'){
            $oFile = New-Object System.IO.FileInfo $Path.FullName
            $locked=$false
            try{
                $oStream = $oFile.Open([System.IO.FileMode]::Open, [System.IO.FileAccess]::ReadWrite, [System.IO.FileShare]::None)
                $oStream.Close()
                }
            catch{
                write-host $Error[0]
                $locked=$true
                New-Object PSObject -Property @{'Path'=$Path.FullName;'Locked?'=$locked} | Select Path,Locked?
                } 

        }
    }
}
$lockedfiles=(gci C:\temp | Test-Lock)
$lockedfiles | Format-Table -auto
Run Code Online (Sandbox Code Playgroud)

这将返回:

Path                  Locked?
----                  ------- 
C:\temp\ReportReq.doc    True
Run Code Online (Sandbox Code Playgroud)

我不知道如何找到锁定此文件的应用程序或进程。

powershell

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

powershell ×1