gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 19:05:18 26 4
gpt4 key购买 nike

我想创建一个 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

这将返回:
Path                  Locked?
---- -------
C:\temp\ReportReq.doc True

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

最佳答案

好吧,您需要使用 sysinternals 中的 handle.exe 来实现此目的。 PowerShell MVP Adam Driscoll 编写了 sysinternals handle.exe 的 PowerShell 版本。您可以在以下位置查看:https://github.com/adamdriscoll/PoshInternals/blob/master/Handle.ps1

另外,Keith Hill 在这里回答了一个类似的问题:PowerShell script to check an application that's locking a file?

关于powershell - 检查目录中的锁定文件并找到锁定应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17204204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com