Name : D:\Databases\Mailbox-DB03\
FileSize : 178617132724
CapacityinGB : 931.36
FreeSpaceinGB : 764.85
UsedSpaceinGB : 166.51
FreePercent : 82
The script will return an object containing the info, so the values can be used again.
$ServerMPInfo = get-MountPointInfo -servername "MailboxServer1" -detailed
$LowSpace = $ServerMPInfo | ?{$_.FreePercent -lt 10}
function Get-MountPointInfo { <# .SYNOPSIS Returns report on mount points for specific server .DESCRIPTION Reads mount points and maps to volumes on a specific server .PARAMETER ServerName Name for the server to run this report against. .PARAMETER Detailed (Optional) Add file size on each mount point. If not selected, it will only return mounted volume names .EXAMPLE Get-MountPOintInfo -ServerName "FilePrintServer" -Detailed #> [CmdLetBinding()] param( [parameter(Mandatory=$true)][string]$ServerName, [Parameter()][switch]$detailed ) $Summary = @() #$objFSO = New-Object -com Scripting.FileSystemObject $MountPoints = gwmi -class "win32_mountpoint" -namespace "root\cimv2" -computername $ServerName $Volumes = gwmi -class "win32_volume" -namespace "root/cimv2" -ComputerName $ServerName| select name, freespace ,Capacity foreach ($MP in $Mountpoints) { $MP.directory = $MP.directory.replace("\\","\") foreach ($v in $Volumes) { $vshort = $v.name.Substring(0,$v.name.length-1 ) $vshort = """$vshort""" #Make it look like format in $MP (line 11). if ($mp.directory.contains($vshort)) { #only queries mountpoints that exist as drive volumes no system $Record = new-Object -typename System.Object $Record | add-Member -memberType noteProperty -name Name -Value $V.name if ($detailed.ispresent) { $DestFolder = "\\"+$ServerName + "\"+ $v.name.Substring(0,$v.name.length-1 ).Replace(":","$") #$destFolder #troubleshooting string to verify building dest folder correctly. $colItems = (Get-ChildItem $destfolder -Recurse | where{$_.length -ne $null} |Measure-Object -property length -sum) #to clean up errors when folder contains no files. #does not take into account subfolders. if($colItems.sum -eq $null) { $fsize = 0 } else { $fsize = $colItems.sum } $TotFolderSize = $fsize + $v.freespace $percFree = "{0:P0}" -f ( $v.freespace/$TotFolderSize) $CapacityinGB = [Math]::Round(($v.Capacity/1073741824),2) $FreeSpaceinGB = [Math]::Round(($v.freespace/1073741824),2) $usedSpace = $v.Capacity - $v.freespace $usedSpace = [Math]::Round(($usedSpace / 1073741824),2) $freePercent = ($v.freespace/$v.Capacity)*100 $freePercent = [Math]::Round($freePercent,0) $Record | add-Member -memberType noteProperty -name FileSize -Value $fsize #This will show space in bytes: $Record | add-Member -memberType noteProperty -name FreeSpace -Value $v.freespace #This will show space in bytes: $Record | add-Member -memberType noteProperty -name Capacity -Value $v.Capacity $Record | add-Member -memberType noteProperty -name CapacityinGB -Value $CapacityinGB $Record | add-Member -memberType noteProperty -name FreeSpaceinGB -Value $FreeSpaceinGB $Record | add-Member -memberType noteProperty -name UsedSpaceinGB -Value $usedSpace $Record | add-Member -memberType noteProperty -name FreePercent -Value $freePercent } $Record | add-Member -memberType noteProperty -name Name -Value $V.name $Summary += $Record } } } return $summary }
No comments:
Post a Comment