ドメイン環境にいくつかのWindows 7/2008ワークステーションがあります。 GPOだれも作業していない場合にウィンドウを自動ロックします(アイドル)(スクリーンセーバーはロックしない)
リモートワークステーションがロックされているかロック解除されているかをリモートで確認するにはどうすればよいですか? quserコマンドを使用してユーザーにクエリを実行しようとしました(ウィンドウがロックされているユーザーまたはウィンドウがロック解除されている別のユーザーでテスト済み、同じ結果)
C:\>psexec \\REMOTEPC1 quser
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
USER1 console 1 Active none 1/24/2017 11:21 AM
上記の結果はSTATE = ACTIVEを示していますが、ワークステーションがロック/ロック解除されているかどうかを照会できません。コマンドまたはメソッドで必要な結果を即座に取得する方法
投稿を更新するのを忘れました。私はUbuntuボックスを使用して、Webmin/BASHスクリプトを使用してほとんどのActive Directory機能を管理しているため、ユーザーセッションにログインしているリモートウィンドウとウィンドウのロック/ロック解除ステータスを照会する小さなbashスクリプトを作成しました。
結果:
root@linux:/temp# /temp/winuserstatus.sh WORKSTAION-1
Remote PC = WORKSTAION-1
IP Details =
Address: 10.0.0.20
Address: 10.0.0.21
User Status = Logged in User found ... details as below ...
jahan.zaib console 13 Active 1+00:53 1/23/2017 1:57 PM
Windows Status = Windows is LOCKED
Bashスクリプトは次のことを行います…
ローカルDNSを使用してNSLOOKUP経由でリモートWindows IPを取得する
現在ログインしているユーザーとそのステータス
ロック/ロック解除されたウィンドウの現在のステータス。
結果をトリムし、好みに応じて表示します
詳細を掲載しました こちら
次のPowerShellスクリプト(GetRemoteLogonStatus.ps1)を使用します。
このスクリプトは、ローカルマシンまたはリモートマシンのログオンステータスを返します。戻り値の種類には、「ログオンしていない」、「ロック」、「ログオン」、「オフライン」があります。これの最も有用な部分は、コンピュータがロック状態にあるかどうかを確認することですが、他の戻り値の種類も役立つ場合があります。
これは単純な関数で、大きなスクリプトに簡単に組み込むことができます。戻り値をより簡単に解析できるように、呼び出しタイプの戻り値の型を数値に変更できます。
# This function will return the logged-on status of a local or remote computer # Written by BigTeddy 10 September 2012 # Version 1.0 # Sample usage: # GetRemoteLogonStatus '<remoteComputerName>' function GetRemoteLogonStatus ($computer = 'localhost') { if (Test-Connection $computer -Count 2 -Quiet) { try { $user = $null $user = gwmi -Class win32_computersystem -ComputerName $computer | select -ExpandProperty username -ErrorAction Stop } catch { "Not logged on"; return } try { if ((Get-Process logonui -ComputerName $computer -ErrorAction Stop) -and ($user)) { "Workstation locked by $user" } } catch { if ($user) { "$user logged on" } } } else { "$computer Offline" } }