PowerShell访问回收站单条对象耗时3秒的原因排查求助
排查PowerShell访问回收站对象耗时过长的问题
我整合了之前的两段示例脚本,修订了问题。以下PowerShell代码会访问回收站中前10条项目,并将其原始文件名和路径输出到CSV文件。代码可正常运行,但每次获取回收站中单个项目对象时,耗时约3-4秒;统计回收站项目总数时耗时也相近。延迟仅源于访问回收站对象的操作,一旦对象打开,后续操作耗时可忽略。另外我有个疑问:我无法通过管道提速,因为GetDetailsOf()方法需要每个回收站项目的独立对象作为输入参数,这个理解是否有误?有没有管道实现的方式?
已有其他用户反馈运行该代码(本次编辑前的分段版本)时,访问单条项目耗时可忽略,因此问题并非出自代码,而是我的计算机访问回收站对象时存在异常。
$oShell = New-Object -com shell.application $ssfBitBucket = 10 $oRecycleBin = $oShell.Namespace($ssfBitBucket) $aasBin = New-Object System.Collections.ArrayList $dTimeAllStart = $(get-date) echo "" $dTimeCountBinStart = $(get-date) echo ("Count of recycle bin objects = " + $oRecycleBin.Items().count) echo ("Elapsed time on count of bin: " + ($(get-date) - $dTimeCountBinStart) + ".") for ($nCount = 0 ; $nCount -lt 10 ; $nCount++) {$dTimeAccessOneItemStart = $(get-date) $oRBItem = $oRecycleBin.Items().Item($nCount) echo ("Elapsed time on item " + $nCount + ": " + ($(get-date) - $dTimeAccessOneItemStart) + ".") $asBinItem = New-Object PsObject -property ` @{'Name' = $oRecycleBin.GetDetailsOf($oRBItem, 0) 'OriginalLocation' = $oRecycleBin.GetDetailsOf($oRBItem, 1)} $aasBin.add($asBinItem) echo $oRBItem.Name } $aasBin ` | select Name, OriginalLocation ` | Export-Csv -Path $sOutputFilespec -NoTypeInformation out-file -InputObject ("") -FilePath $sOutputFilespec -append $dTimeAllEnd = $(get-date) $dTimeAllElapsed = $dTimeAllEnd - $dTimeAllStart $sTimeAllElapsed = $dTimeAllElapsed.ToString("hh\:mm\:ss") echo ("Elapsed time: " + $sTimeAllElapsed + ".")
这段代码是我计划用于全量处理回收站脚本的精简版本。我的回收站现有17000条项目,若单条耗时3秒,总耗时将达14小时,显然过长。
额外现象
- 若在进行其他操作后返回运行该脚本,或重启电脑后无其他负载时运行,首次访问耗时约7秒
- 若保留统计回收站总数的代码段,该统计操作耗时约7秒,其余操作耗时3-4秒
- 若不统计总数,则首次访问项目耗时约7秒,后续耗时3-4秒
- 无论是否统计总数,若在刚运行完后立即再次运行,所有操作耗时均为3-4秒
已排查信息
- 运行代码时,任务管理器未显示内存占用显著上升
- 测试的10条项目大小为15KB至5.5MB,均存储于本地同一SSD;除一条外,其余原始路径均在同一文件夹;删除日期为2021年4月至2022年11月;某次测试中,访问耗时介于3.0至3.8秒
- 回收站仅17189条项目,NTFS通常在文件数超10万时才会出现性能问题,因此排除该因素
编辑2:为排查是否由网络安全软件SentinelOne导致延迟,我断开网络并禁用SentinelOne代理后再次运行脚本,耗时略有变化,但无明显改善。
请问如何排查我的计算机中导致回收站对象访问耗时数秒的原因?
内容的提问来源于stack exchange,提问作者NewSites
相关产品推荐
相关产品推荐

