我有一个POS系统,除非login到控制台会话,否则无法工作。 我想,因为我已经有NSClient ++,也许我可以通过Nagios监视一个计数器。
有没有这个计数器,我可以提醒,如果该帐户没有login? 是'\ Terminal Services \ Total Sessions'吗? 现在,显示了2个会话我的虚拟机,这并不完全是对我有意义的,除非我的远程桌面算作一个,而VMWare总是使用一个…
如果我可以用check_nt做这件事,对我来说这可能会超过潜在的更好的方法,但我愿意接受。
XP一次只允许1个“交互式”login,无论是物理上在计算机上还是通过RDP远程login。 至于“控制台”和远程login去,XP不关心你正在使用,因为无论以任何方式login,任何应该运行的进程将运行。
您试图确定用户是否已login,但更重要的(我认为)是如果正在运行的进程正在运行。 为什么不检查正在运行的进程而不是试图弄清楚用户是否login? 如果进程崩溃,但用户仍然login,该怎么办?
查看winlogon.exe进程对于XP来说是无用的,因为它运行时无论是否有人实际login。寻找的典型进程是在用户名下运行的explorer.exe(尽pipe它也可能会崩溃,甚至可能是在没有将用户closures的情况下杀死)。
在Windows系统上,您可以使用sysinternals( http://technet.microsoft.com/en-us/sysinternals/default.aspx )中的“psloggedon.exe”在计算机上使用-l开关查找本地login名 – “psloggedon \ computername -l”。 我认为当你检查计数时你看到2个会话的原因是检查本身build立了一个会话以确定有多less会话…
在nagios中使用check_nt最好的办法是1)检查你需要运行的特定进程(希望它可以一直运行),或者2)检查explorer.exe是否运行,因为只有当有人被实际login但是就像我说过的那样,并不是一种安全的方式来确定是否是这种情况。
免责声明! – 我不使用nagios,只是在这里检查网站: http : //nagiosplugins.org/man/check_nt插件,可能为你需要的工作
要计算login用户的数量,您可以看到有多lesswinlogon.exe进程正在运行。 (控制台会话将始终采取第一个)
我真的不知道,所以我只是在这里盲目地猜测,而且由于您提到terminal服务器我假设您的意思是“附加会话”(或活动会话),所以我并不真正明白“login”的含义。
以下是我在terminal服务下的柜台,似乎是一个合理的开始:
\ Terminal Services \ Total Sessions \ Terminal Services \ Active Sessions \ Terminal Services \ Inactive Sessions
快速谷歌给出:活动会话活动的会话总数,不包括断开连接的会话。
总会话活动的会话总数,包括断开连接的会话。
因此,在我看来你想要“积极的会议”?
第二个反映是上面的工具可以很容易的从NSClient ++里面使用脚本,但是你必须使用NRPE(check_nrpe)才能够从nagios执行脚本而不是check_nt)。
// Michael Medin