Windowsサーバの ログインユーザー数のアイテム取得について

こんにちは。いつも利用しております。Zabbix3.4.9です。

Windowsサーバのタスクマネージャーなどで見れる「ユーザー」情報なのですが、
こちらのログインユーザー数をZabbixのアイテムで取得するにはどのような設定で実現できるでしょうか。

ざっくりしていて申し訳ないですが、わかるかたがいましたらご教授いただきたいです。
※可能であれば「アクティブ」「切断」などの状態別に取得できるか

よろしくお願いします。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー Insight の写真

Windowsであれば "query user"でログインユーザを取得できるので

UserParameterを利用して

UserParameter=useractive,powershell -Command "(query user | sls Active).count"

みたいな設定を作成して、監視できないでしょうか。
※上記はアクティブユーザを取得する監視

ユーザー Yasumi の写真

ありがとうございます。

経験不足なことにUserParameterを利用したことがないのですが、
アイテム設定はuseractive[]を入れれば良い認識でしょうか。

ユーザー Insight の写真

例で提示させてもらったものは、変数利用しないので
アイテム設定のキーを useractive にしていただければ取得できるはずです。

変数利用する場合は
UserParameter=user.count[*],powershell -Command "(query user | sls '$1').count"
といったUserParameterを作成して
アイテム設定のキーを user.count[Active] で設定すれば同じ動きになるかと思います。
※この場合は[Active]を変更して別のアイテムを作れば問題ないはずです。

ユーザー Yasumi の写真

ありがとうございます。

useractiveで問題なくアイテム情報取得できました!

Windowsコマンドに詳しくないため少し追加で質問なのですが、
query userコマンドで「ユーザー名」だけを切り出すことも可能でしょうか?

ユーザー Insight の写真

あまりうまい方法ではない気がするのですが

■英語で問題ない場合
powershell -Command "chcp 437;(query user) -replace '\s{2,}', ',' | ConvertFrom-Csv | Select-Object USERNAME"

■日本語が必須の場合
powershell -Command "(query user) -replace '\s{2,}', ',' | Select-Object -skip 1 | ConvertFrom-Csv | Select-Object ユーザー名"

でしょうか。

ユーザー Yasumi の写真

powershell -Command "chcp 437;(query user) -replace '\s{2,}', ',' | ConvertFrom-Csv | Select-Object USERNAME"

上記にて問題なく情報取得できました!

丁寧にご教授いただきありがとうございます。大変助かりました。