PowerShell BizTalk WMI

Specific PowerShell script to shutdown a BizTalk receive location when a disk is more then 80% full. This application uses WMI to request disk info and shutdown the the receive location.

function fGetDiskFillPerc([string]$vComputer, [string]$vDiskID) {
  $vCommandLine1 = "Get-WMIObject -ComputerName '" + $vComputer + "' Win32_LogicalDisk -filter `"DeviceID = '" + $vDiskID + "'`""
  $vResult1 = Invoke-Expression $vCommandLine1
  foreach ( $vDisk in $vResult1 ) {
    if ($vDisk.DriveType -eq 3) { 
      [decimal]$dDiskFill = $vDisk.Size - $vDisk.FreeSpace
      return $dDiskFill / $vDisk.Size * 100
    }
  }
}
 [decimal]$dDiskFillPercResult = fGetDiskFillPerc "." "D:"
if ( $dDiskFillPercResult -gt 80 ) {
  $oRecLoc1 = get-wmiobject MSBTS_ReceiveLocation  -namespace 'rootMicrosoftBizTalkServer' -filter "Name='ReceivePortName'"
  [void]$oRecLoc1.Disable()
}