Reputation: 5223
I have some servers where i need to monitor the free space percentage with powershell.
For one Drive for one server its like that:
$size = ([wmi]"\\appsrv02\root\cimv2:Win32_logicalDisk.DeviceID='c:'").Size
$free = ([wmi]"\\appsrv02\root\cimv2:Win32_logicalDisk.DeviceID='c:'").FreeSpace
Write-Output ($free/$size).ToString("P0")
Sure, i could go about and repeat code and create a big script, but i "feel" it wrong 100%.
So how i would go about having n Servers that i want to check the free space and in different drives per server?
Upvotes: 0
Views: 2106
Reputation: 347
I wrote a script that does that. Essentially I used a nested loop:
Foreach ($server in $serverlist) {
$Disks = get-wmiobject Win32_LogicalDisk -computername $Server -Filter “DriveType = 3”
Foreach ($Disk in $Disks) {
Write-Output $server " = " $Disk.Freespace
}
}
Upvotes: 0
Reputation: 28174
Use Get-WMIObject
to poll the servers for disk information.
get-wmiobject win32_logicaldisk -filter "DriveType=3" -computername server1,server2|select-object -property systemname, deviceid, size, freespace, volumename
Upvotes: 1