Can anyone tell me why the following code does not evaluate correctly:
[Double]
$warning_freemem = 10.0,
[Double]
$critical_freemem = 5.0
$ExitStatus = "0"
$ComputerSystem = Get-WmiObject -ComputerName $ipaddress -Class Win32_operatingsystem -Property CSName, TotalVisibleMemorySize, FreePhysicalMemory
$MachineName = $ComputerSystem.CSName
$FreePhysicalMemory = ($ComputerSystem.FreePhysicalMemory) / (1mb)
$TotalVisibleMemorySize = ($ComputerSystem.TotalVisibleMemorySize) / (1mb)
$TotalVisibleMemorySizeR = “{0:N2}” -f $TotalVisibleMemorySize
$TotalFreeMemPerc = ($FreePhysicalMemory/$TotalVisibleMemorySize)*100
$TotalFreeMemPercR = “{0:N2}” -f $TotalFreeMemPerc
if ($TotalFreeMemPercR -lt $warning_freemem) {
$ExitStatus = "1"
}
elseif ($TotalFreeMemPercR -lt $critical_freemem) {
$ExitStatus = "2"
}
When i run it, i get:
Name: WK-2ZVPF5J
RAM: 7.89 GB
Free Physical Memory: 28.26 %
But ExitStatus is always equal to “2”, whereas it should be “0”