You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell获取共享文件夹1年未访问文件失败的问题求助

解决PowerShell过滤超过1年未访问文件的问题

我一眼就看出你脚本里的关键问题啦——你计算了12个月前的日期,但没把这个结果存回变量里!PowerShell里的AddMonths()和AddYears()方法都是返回一个新的日期对象,不会直接修改原来的$time变量。所以你的过滤条件实际上是拿文件的访问时间和当前时间比,那所有文件自然都会被包含进去,这就是为什么CSV里还有当前年份的文件。

修正后的脚本

方法1:用AddMonths(-12)计算1年前的日期

$time = Get-Date | AddMonths(-12)  # 直接把计算后的日期赋值给变量
Get-ChildItem "\\Ajay-1\" -Recurse -File -ErrorAction SilentlyContinue | 
    Where-Object {$_.LastAccessTime -lt $time} | 
    Select-Object FullName, LastAccessTime | 
    Export-Csv "D:\\Time\\Last.csv" -NoTypeInformation

方法2:用AddYears(-1)更直观

$time = Get-Date | AddYears(-1)  # 直接计算1年前的日期
Get-ChildItem "\\Ajay-1\" -Recurse -File -ErrorAction SilentlyContinue | 
    Where-Object {$_.LastAccessTime -lt $time} | 
    Select-Object FullName, LastAccessTime | 
    Export-Csv "D:\\Time\\Last.csv" -NoTypeInformation

额外提醒

还有个小细节要注意:Windows系统默认可能会禁用自动更新文件的LastAccessTime属性,这是为了提升文件系统性能。如果发现过滤结果还是不符合预期,可以先检查系统是否开启了这个功能:

fsutil behavior query disablelastaccess

如果返回disablelastaccess=1,说明是禁用状态,你可以用管理员权限运行下面的命令开启,重启电脑后生效:

fsutil behavior set disablelastaccess 0

内容的提问来源于stack exchange,提问作者Ajay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:47:30