In addition to the way Phil mentioned, you could also consider the Blue Prism Resource PC Commands, depending on your org's expertise in that area.
Also, keep in mind that if you use Login Agent (i.e.- your resources are not logged in all the time), you may get false reports of resources offline during the time the resource is logging in. No real way around that except to time the queries to not run at specific common times for logins such as :00, :15, :30, etc.
Edit: Now that I think of it, I suppose your queries/query logic could also check to see if that same resource had a Login session run within the last 2-3 minutes and then simply not consider it Offline if that's the case.
------------------------------
Dave Morris
3Ci @ Southern Company
Atlanta, GA
------------------------------
Dave Morris, 3Ci at Southern Company