В данной заметке будут приведены небольшие, но полезные скрипты и приемы, позволяющие облегчить администрирование файлового сервиса.
Количество файлов в папках и размер папок
Данный скрипт выводит в виде .csv-файла количество файлов и размер каталогов по адресу D:\SHARES, помещая результат в файл D:\Count.csv.
$source="D:\SHARES"
Get-ChildItem $source -recurse -force | where {$_.psIscontainer} | foreach {
$count = Get-ChildItem $_.fullname -recurse | where {$_.length} | Measure-Object -property length -Sum
Write-Host($_.FullName)
$FilesSize = '{0:F}' -f ((($count.Sum)/1024)/1024)
Write-Host("Files: " + $count.count )
Write-Host("Size: " + $FilesSize + " MB")
'"' + $_.FullName + '","' + $count.count + '","' + $FilesSize + '"' | Out-File D:\Count.csv -Append
}
Удаление файлов старше N дней
Данную задачу можно выполнить и Powershall, однако достаточно использования cmd-скрипта, в виде bat-файла или напрямую из командной строки.
forfiles /p D:\SHARES /m *.rar /s /d -10 /c «cmd /c del @path /q»
где 10 - число дней
Удаление папок старше N дней
forfiles /p D:\SHARES /s /d -10 /c «cmd /c rmdir /s del @path /q»
где 10 - число дней
Используя данные неложные скрипты, можно автоматизировать удаление папок и файлов из общедоступных пользовательских ресурсов, а первый скрипт пригодится для оптимизации файлового сервиса.