Для первой части вопроса вы можете использовать
# fixed date
Get-ChildItem c:\temp\ | ? { $_.LastWriteTime -lt [datetime]'2009-02-23' }
# variable depending on current date; it returns only items that are older than 365 days
Get-ChildItem c:\temp\ | ? { $_.LastWriteTime -lt [datetime]::Now.AddDays(-365) }
Что касается изменения заголовков. Можно выбрать элементы с разными именами, но с одинаковым содержимым (~ переименовать свойства):
Select-Object @{Name='ItemName'; Expression={$_.FullName } },
@{Name='Write'; Expression={$_.LastWriteTime } },
@{Name='Access'; Expression={$_.LastAccessTime } }
Обратите внимание, что есть блок скриптов, где вы можете делать все, что захотите. Вы можете, например, формат даты {$_.LastAccessTime.ToString('yyyy-MM-dd') }
Если я собрал его (только 3 свойства переименованы)
Get-ChildItem e:\ -rec |
? { $_.LastWriteTime -lt [datetime]::Now.AddDays(-365) } |
Select-Object @{Name='ItemName'; Expression={$_.FullName } },
@{Name='Write'; Expression={$_.LastWriteTime } },
@{Name='Access'; Expression={$_.LastAccessTime } } |
Export-Csv e:\test\testit.csv -notype