Хорошо, у меня есть скрипт, который я пишу в 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 вопроса ... Как мне это сделать с несколькими дисками? и Будет ли это применяться ко всем пользователям или только ко мне?