我试图运行一个命令,该命令应该删除“LastAccessTime”超过 30 天的所有内容。但是,当我运行它时,它只是修改了 LastAccessTime 并且没有删除。命令如下。
Get-ChildItem'共享中的\servername\share\folder'|?{$.LastAccessTime -lt (获取日期).AddDays(-30)} | ?{!$.psiscontainer} | 删除项目
我运行此程序的帐户有权访问共享,包括删除权限(手动测试)。如果我取出| 删除项目并将日期更改为超过 1 天,它会返回文件。我应该使用其他东西吗除去项目?
答案1
请避免在 serverfault 上的脚本中使用别名,因为它们会降低脚本的可读性。
除此之外,你缺少一些下划线,我猜你的脚本应该是:
Get-ChildItem '\servername\share\folder in the share' | where {$_.LastAccessTime -lt (Get-Date).AddDays(-30)} | where {!$_.psiscontainer} | Remove-Item