1

我有许多远程机器的临时目录已满。(是 Selenium / webdriver 网格遥控器)。我有一个 powershell 脚本,用于标识需要清理的文件和目录。使用的命令看起来像这样(不包括各种机器和目录的复杂性):

gci $env:TEMP -Recurse| Remove-Item -ErrorAction Continue -Recurse

问题是当某些文件正在使用时,这需要很长时间。在本地,我可以加入句柄的输出(解析会有点难看),但在远程机器上会更复杂。除其他外,我需要验证 WinRM 是否配置正确、句柄是否在路径中等。

有没有更简单的方法来识别文件正在使用中?理想情况下,可以通过 Powershell(包括 .NET)进行过滤。我熟悉各种其他脚本语言(ruby、python、perl)。

4

1 回答 1

2

我发现列出打开文件的最佳工具是SysInternals 工具 handle.exe ,例如:

$openFiles = @(handle $env:TEMP | Foreach {($_ -split ": ")[3]} | Select -Unique)
于 2012-04-03T22:26:18.303 回答