Folder size via agent

Started by berlin15, April 09, 2013, 01:22:25 PM

Previous topic - Next topic

berlin15

Hi.
How i can get a folder size on remote host via agent or script?
Thanks.

berlin15



Maybe to someone it helps...get folder size in windows with powershell

1.Edit nxagentd.conf and paste next
ExternalParameter = FolderSize(*):powershell.exe ( Get-ChildItem $1 -Recurse -Force | Measure-Object -Property Length -Sum ).Sum / 1KB or /1MB if you want Mbytes, /1GB etc....
2.Restart agent.
3.Add Parameter to your node.
Enjoy.  :)

Alex Kirhenshtein

Just some notes:

1) I'd add error handling, like this:
Try {
"{0:F2}" -f ((Get-ChildItem $args[0] -r -ErrorAction stop | Measure-Object -property length -sum).sum / 1KB)
}
Catch {
Write-Host "0.00"
}


2) If you plan to scan large directories and it could potentially take long time, it's better to use ExternalParametersProvider with script like this:

$dirs = @("c:\DosBox", "C:\tmp")

foreach ($dir in $dirs) {
$size = "0.00"
Try {
$size="{0:F2}" -f ((Get-ChildItem $dir -r -ErrorAction stop | Measure-Object -property length -sum).sum / 1KB)
}
Catch {
}
Write-Host "DirSize($dir)=$size"
}


3) If these script saved as a file, PowerShell may require to sign it before running, disable execution policy:
powershell -ExecutionPolicy ByPass -File ...\script.ps1

Victor Kirhenshtein

Hi!

You can also use File.Size parameter:

File.Size(directory,*,1)

this will get size of all files in given directory and subdirectories. If you want to ignore subdirectories, you can use form

File.Size(directory,*,0)

Full description of File.Size and File.Count arguments:

File.Size and File.Count accepts the following arguments:
    path, pattern, recursive, size, age
where
    path    : path to directory or file to check
    pattern : pattern for file name matching
    recursive : recursion flag; if set to 1 or true, agent will scan subdirectories
    size      : size filter; if < 0, only files with size less than abs(value) will match;
                if > 0, only files with size greater than value will match
    age       : age filter; if < 0, only files created after now - abs(value) will match;
                if > 0, only files created before now - value will match

All arguments except first can be omitted.

Best regards,
Victor