В $source указываем буквы дисков которые надо просканировать
Создаем каталог c:Reports или указываем свой путь в Export-CSV
Сам скрипт:
$source= "D:","F:"
$time = Get-Date
$result = @()
foreach($d in $source)
{
Get-ChildItem $d | where {$_.psIscontainer} | Foreach {
$r = robocopy $_.FullName c:dummy /l /xj /e /nfl /ndl /njh /bytes /r:0
$data = $r -match "(Файлов|Байт)" -replace "s+(Файлов|Байт)s+:s+" | Foreach {$_.split(" ")[0]}
$result += New-Object PSObject -Property @{Folder=$_.FullName;Files=$data[0];"Size(mb)"=$data[1]/1mb;"Size(Gb)"=$data[1]/1gb}
}
}
$result | Select Folder,"Size(Gb)","Size(mb)",Files |
Export-CSV -NoType "c:Reportsshd-$($time.ToString('ddMMyy')).csv" -Delimiter ";" -Encoding UTF8
|
ЗЫ: (8ТБ проанализировал за 15 минут)