Hi.
How i can get a folder size on remote host via agent or script?
Thanks.
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. :)
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 (http://wiki.netxms.org/wiki/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
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