Saturday, August 18, 2012

Folder sizes email report in CSV using Powershell

Folder size CSV report using power shell

$path = "Path_To_Folders_Root"
$EmailFrom = "Email_Address_From"
$EmailTo = "Email_Address_To"
$EmailSubject = "User Folders Report"

$SMTPServer = "SMTP_Server_IP"

Get-ChildItem $path |
Where-Object {$_.PSIsContainer} |
% {
    $size = (Get-ChildItem $_.FullName -recurse |
                Measure-Object -property length -sum).sum
    $obj = New-Object PSObject
    Add-Member -inp $obj NoteProperty Name $_.Name
    Add-Member -inp $obj NoteProperty Path $_.FullName
    Add-Member -inp $obj NoteProperty Size $size
    $obj
} | Sort-Object Size -Descending |
Select-Object Name, @{N="Size(MB)";E={"{0:N2}" -f ($_.Size / 1Mb)} },Path |
Export-CSV -Path UserFoldersReport.csv -NoTypeInformation

Send-MailMessage -To "$EmailTo" -From "$EmailFrom" -subject "$EmailSubject"
-smtpServer "$SMTPServer" -Attachments "UserFoldersReport.csv"

Task Scheduler::

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe
-command PATH_TO_SCRIPT
Original Post
 

No comments: