Try { $strComputer = "." $colItems = Get-WmiObject -class "win32_volume" -namespace "root\cimv2" -computerName $strComputer | Where-Object {$_.name -notmatch "\\\\" -and $_.DriveType -eq "3"} | Sort-Object Name foreach ($objItem in $colItems) { $defragresult = $objItem.DefragAnalysis() $Item = $defragresult.DefragAnalysis $hash = @{ VolumeSizeGB = [Math]::Round($Item.VolumeSize/1GB,2) UsedSpaceGB = [Math]::Round($Item.UsedSpace/1GB,2) FreeSpaceGB = [Math]::Round($Item.FreeSpace/1GB,2) FreeSpacePercent = $Item.FreeSpacePercent TotalPercentFrag = $Item.FilePercentFragmentation DefragRecommended = $defragresult.DefragRecommended DriveLetter = $_.DriveLetter } write-host "Volume: "$objItem.Name write-host "Volume Label:"$objItem.Label write-host "FileSystem Type:"$objItem.FileSystem write-host ("{0}{1}{2}" -f "Volume Size: ",$hash.VolumeSizeGB,"GB") write-host ("{0}{1}{2}" -f "Used Space: ",$hash.UsedSpaceGB,"GB") write-host ("{0}{1}{2}" -f "Free Space: ",$hash.FreeSpaceGB,"GB") write-host ("{0}{1}{2}" -f "% Free Space: ",$hash.FreeSpacePercent,"%") write-host ("{0}{1}{2}" -f "% Fragmented: ",$hash.TotalPercentFrag,"%") write-host "Is Defragmentation Recommended?"$hash.DefragRecommended write-host " " write-host "--------------------------------------------" write-host " " if (($hash.DefragRecommended -eq $true) -or ($hash.TotalPercentFrag -gt 1)) { $needDefragment = $true } } if ($needDefragment -eq $true) { write-host "Some Volume needs to be defragmentated. See the report above." Exit 1001 } else { write-host "No volume needs to be defragmentated at this time." Exit 0 } } Catch { write-host "Script Failed to run." Exit 1001 }