Windows Powershell scripts are returning wrong error codes

Function to help the exitcode be seen by Sensu

function ExitWithCode
{
param
(
$exitcode
)

$host.SetShouldExit($exitcode)
exit

}

If ($Value -ge $CRITICAL) { Write-Host CheckWindowsCpuLoad CRITICAL: CPU at $Value%. ExitWithCode 2 } If ($Value -ge $WARNING) { Write-Host CheckWindowsCpuLoad WARNING: CPU at $Value%. ExitWithCode 1 } Else { Write-Host CheckWindowsCpuLoad OK: CPU at $Value%. ExitWithCode 0 }