Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Сбор информации о файлах измененных до ... (http://forum.oszone.net/showthread.php?t=244948)

rox33 18-10-2012 13:47 2007797

Сбор информации о файлах измененных до ...
 
Добрый день, уважаемые!
Такая проблема:
Есть файловая помойка объёмом под 6 Тб (доменная область обмена), на сервере 2008R2.
Первой задачей является сбор статистики - какие файлы, и сколько их, были изменены более 2 лет назад (изменены до 2010, до 2011 годов)
И выгрузка в csv этой статистики с информацией о имени файла, пути, дате изменения и, если возможно, дате открытия.

Второй задачей будет перемещение всех файлов созданных до 2010/2011 года на резервное хранилище.


Возможно ли решить это на PS?

Заранее спасибо за любую помощь!

Kazun 18-10-2012 14:10 2007811

Код:

#1
$date = Get-Date 1.1.2011
$files = Get-ChildItem -Path C:\ -Force -Recurce | Where {!$_.PsIsContainer -and $_.LastWriteTime -le $date}
$files| Select Name,DirectoryName,LastWriteTime,LastAccessTime | Export-Csv -NoType result.csv -Encoding Unicode
#2
$files | Move-Item -Destination "E:\"


rox33 18-10-2012 15:12 2007841

Спасибо, всё заработало (только случайная опечатка в -Force -RecurSe).
И доп. вопрос - как перемещать только те файлы, у которых и время записи ДО 2011 года, и время последнего доступа ДО 2011 года. Т.е. если файл был изменён ДО 2011, а открыт уже после - его не перемещать.
Есть вероятность, что многие программы не корректно записывают в свойства файла время открытия.


ЗЫ добавить в отчёт размер - так :
| Select Name,DirectoryName,LastWriteTime,LastAccessTime,Size |
?
Нашел - параметр Length нужен.

ЗЫЫ Перемещение не проверял, подскажите, как сделать, чтобы оно сохранялось с текущей структурой папок?

Kazun 18-10-2012 15:51 2007871

{!$_.PsIsContainer -and $_.LastWriteTime -le $date -and $_.LastAccessTime -le $date}

" Есть вероятность, что многие программы не корректно записывают в свойства файла время открытия." - Сплошь и рядом,можно вручную легко изменять,что и советует делать Microsoft.

Размер - Length

Move-Item -Destination {md $_.DirectoryName.Replace("C:\","E:\") -force}


Время: 04:07.

Время: 04:07.
© OSzone.net 2001-