e4rthdog
e4rthdog

Reputation: 5223

Getting free space percent on multiple servers on different drive letters with powershell

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

Answers (2)

James Brown
James Brown

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

alroc
alroc

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

Related Questions