Currently the logon account for the snClient service has to be in the administrator group in order to check a Windows service state. This is due to golang requesting "SC_MANAGER_ALL_ACCESS" when opening the service control manager:
https://cs.opensource.google/go/x/sys/+/refs/tags/v0.10.0:windows/svc/mgr/mgr.go
h, err := windows.OpenSCManager(s, nil, windows.SC_MANAGER_ALL_ACCESS)
Currently the logon account for the snClient service has to be in the administrator group in order to check a Windows service state. This is due to golang requesting "SC_MANAGER_ALL_ACCESS" when opening the service control manager: https://cs.opensource.google/go/x/sys/+/refs/tags/v0.10.0:windows/svc/mgr/mgr.go h, err := windows.OpenSCManager(s, nil, windows.SC_MANAGER_ALL_ACCESS)
I have found this here: https://github.com/winlabs/gowin32/blob/0d265587d3c90d3dca04c4927c845b5334ade86f/service.go#L394 ...which apparently allows to read service state with less properties and should be sufficient for monitoring.
There is also an issue open with golang about this: https://github.com/golang/go/issues/51465