Я хочу рекурсивно получить список недавно измененных файлов на двух сетевых дисках, отсортировать их в порядке убывания даты и внести некоторые изменения в файл CSV, чтобы привести в порядок список для Excel
Я использовал приведенный ниже код из ряда источников (я начинающий PowerShell), и теперь он делает то, что мне нужно (т.е. создает список).
Мне нужна помощь в дальнейшем продвижении, я не могу отсортировать полученный CSV-файл по дате последней записи файла, это потому, что мой массив ожидает текст, а не числовое поле?
Я также возвращаю имя домена и владельца файла с ((Get-ACL $_.FullName).Owner)
. Я попытался использовать Replace
, чтобы сократить строку, но мне не повезло с таким подходом.
$arr = @()
$days_to_check=$(Get-Date).AddDays(-28)
$items = @(Get-ChildItem '\\ND\dir 1\*.*' -Recurse -ErrorAction SilentlyContinue | where { $_.LastWriteTime -gt $days_to_check})
$items += @(Get-ChildItem '\\ND\dir 1\*.*' -Recurse -ErrorAction SilentlyContinue |
where { $_.LastWriteTime -gt $days_to_check})
$items | Foreach {
$obj = New-Object PSObject -prop $hash
$obj | Add-Member NoteProperty FullName $_.FullName
$obj | Add-Member NoteProperty Directory $_.Directory
$obj | Add-Member NoteProperty Name $_.Name
$obj | Add-Member NoteProperty LastTime $_.LastWriteTime
$obj | Add-Member NoteProperty Owner ((Get-ACL $_.FullName).Owner)
$arr += $obj
}
$arr | Format-List
$arr | Sort-Object -Property LastTime -Descending
$arr | Export-CSV -notypeinformation C:\temp\filenamesFO.csv
CSV-файл, отсортированный по полю даты