Disk information via PowerShell & WMI

Sorry for taking so much time off in between posts. Lot’s of stuff happening. So, without further waiting, here we go – the long-promised Disk Info via PowerShell & WMI.

Note, there is a filter being applied to Get-WMIObject ["Drive Type = 3"] is a local disk drive.

##Create ServerList.txt file:
sqlcmd /Lc > F:/temp/ServerList.txt

#Populate $Server_List
$Server_List = Get-Content  "F:\Temp\ServerList.txt"

##Loop through $Server_List & print disks with (% FreeSpace) < X:
#
foreach ($row in $Server_List)
{
	$colItems = Get-WmiObject -computername $row -class Win32_LogicalDisk -filter "DriveType = 3"

	Write-Host "Checking: "$row "...."
	Write-Host

	foreach ($objItem in $colItems)
	{
		[decimal]$Size = [math]::Round( (($objItem.Size) / 1.00gb) ,2) # cast to [decimal] or [long] due to
		[decimal]$FreeSpace = [math]::Round( (($objItem.FreeSpace) / 1.00gb) ,2) # PSH inability to cope
		[decimal]$Percent = [math]::Round( (($FreeSpace / $Size) * 100.00) ,2) # with UInt64 types coming at it.

		#if ($Percent -le 90)
			#{
				Write-Host  "	Mount Point: " $objItem.DeviceID
				Write-Host  "	Volume Name: " $objItem.VolumeName
				Write-Host  "		Total Size: " $Size "GB"
				Write-Host  "		Free Space: " $FreeSpace "GB"
				Write-Host
				Write-Host	"			Percent Free: " $Percent"%"
				Write-Host
			#}
				}
	Write-Host
	Write-Host
}
Explore posts in the same categories: Admin, Powershell

Comment: