Find out the stability of a Windows box
This agent procedure gets an average of the Windows System Stability Index and puts the result in a Custom Field so you can see its reliability. This can help find endpoints that will have problems such as application and operating system crashes, slowness, and other problems that can negatively affect the system. This agent procedure is a good example of VSA’s flexibility and shows that if VSA doesn’t do something natively then you can write an Agent Procedure to add the functionality.
This is based on the Windows Reliability data collected over the lifetime of a system.
It is a weighted measurement calculated from the number of failures seen over a rolling
historical period. The index value is calculated over the preceding 28 days, although the results for considerably more days can be seen in the Reliability Monitor itself. Reliability events in the System Stability Monitor will describe the specific failures for you to investigate further.
Great procedure to enable proactive endpoint management. E.g. looking for systems with low stability ratings and figure out what is going on before users have to reach out.
Very under-rated procedure. This gives a decent overall health score of Windows Operating System to understand it's health and overall user experience. This article helped understand the calculation: https://www.serverbrain.org/learning-2008/understanding-the-system-stability-index.html#:~:text=The%20system%20stability%20index%20is%20a%20weighted%20measurement%20calculated%20from,over%20a%20rolling%20historical%20period.&text=Recent%20failures%20are%20weighted%20more,reliability%20issue%20has%20been%20resolved.
Does anyone know how to fix this error? Cannot convert argument "decimals", with value: "18003693570451", for "Round" to type "System.Int32". Any tips and assistance is appreciated.
I managed to fix the issue. Dependent on the localisation sometimes separating decimals with a comma (,) does not work instead you can change the comma to a dot (.) in the #global:cmdresults# if you add this command; '#global:psresult#' -replace ',','.' on line 13 and 18.
Thanks for the good work on this procedure.
For anyone else who is running PowerShell in constrained mode, you can make a change to have procedure still output a rounded number without using the math function.
Change line:
[math]::round("#global:psresult#", 2)
To be:
'{0:N2}' -f #global:psresult#
Great! Thanks Thomas Brewster!
Hi all, i'm getting the "Cannot convert argument "decimals", with value: "18003693570451", for "Round" to type "System.Int32"." error and am having trouble understanding where / how to add the "'#global:psresult#' -replace ',','.' on line 13 and 18." any help would be appreciated as this is working on some workstations and not on others
This Agent Procedure together with the Detect HDD or SSD plus SMART Health Agent Procedure (https://automationexchange.kaseya.com/products/618) will be very helpful in judging the reliability of a system.