好的,我有一个我正在用 powershell 编写的脚本,它将删除回收站中的旧文件。我希望它从回收站中删除超过 2 天前删除的所有文件。我对此进行了大量研究,但没有找到合适的答案。
这是我到目前为止所拥有的(在网上找到了脚本,我不太了解powershell):
$Path = 'C' + ':\$Recycle.Bin'
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
#Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
Remove-Item -Recurse -exclude *.ini -ErrorAction SilentlyContinue
它工作得很好,有一个例外,它检查文件参数“LastWriteTime”。如果用户在修改文件的同一天删除了文件,那就太棒了。否则失败。
如何修改此代码,以便检查文件何时被删除,而不是何时被写入。
-附带说明,如果我从 Microsoft Server 2008 上的管理员帐户运行此脚本,它将适用于所有用户的回收站还是只适用于我的?
回答:
对我有用的代码是:
$Shell = New-Object -ComObject Shell.Application
$Global:Recycler = $Shell.NameSpace(0xa)
foreach($item in $Recycler.Items())
{
$DeletedDate = $Recycler.GetDetailsOf($item,2) -replace "\u200f|\u200e",""
$dtDeletedDate = get-date $DeletedDate
If($dtDeletedDate -lt (Get-Date).AddDays(-3))
{
Remove-Item -Path $item.Path -Confirm:$false -Force -Recurse
}#EndIF
}#EndForeach item
它对我来说很棒,但是还有 2 个问题......我如何使用多个驱动器来做到这一点?这适用于所有用户还是仅适用于我?