web-dev-qa-db-ja.com

サーバー08RDP:同じユーザーがすでに接続されている場合に警告することは可能ですか?

現在、一貫性を確保するために全員がすべての同じインスタンスを共有する必要があるため、サーバー2008 r2マシンに対して1つのRDPアカウント(管理者)を介して開発と監視を行っています。問題は、1人の人が接続して離れているときに、他の人が同じアカウントを使用して接続しようとすると、最初の人が起動し、2番目の人に制御が渡されることです。唯一の警告は少し遅すぎます。最初の人が「別のユーザーがリモートコンピューターに接続したため、接続が失われました」というメッセージを受信したときです。

誰かがすでに接続していることを着信ユーザーに警告する(別のアカウントで作業しているときに表示されるメッセージの種類と同様)、または被害者に起動しないオプションを許可する既知の方法はありますか?

7
Trent

いくつかの悪いニュース:既存のセッションにログインしようとしているときにRDPに警告を表示させる方法はありません。 RDP経由でログインしようとしていて、anotherユーザーがすでにログインしている場合にのみ警告が表示されます。悲しい顔


待ってください...理論的には、リモートスクリプトを使用して可能かもしれません。 queryコマンドとuserオプションを使用して、ログオンしているユーザーのリストを取得できます。次に、興味のあるユーザー名を検索して、ACTIVEタグがSTATE列にあるかどうかを確認できます。そこから、ユーザーがログオンしていない場合は.rdpファイルを呼び出し、ユーザーがログオンしている場合は警告ダイアログを送信できます

自家製ですが、うまくいくはずです。

私のWindowsサーバーの1つからの例:

C:\Users\BigKahuna>query user
 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
>BigKahuna          rdp-tcp#0           1  Active          .  3/26/2012 6:51
PM
5
Wesley

このvbsスクリプトを使用すると、同じユーザー名でWindowsサーバーに既にログインしているユーザーが追い出されるのを防ぐことができます。

Set objShell = WScript.CreateObject("WScript.Shell")
Set p = objShell.Exec("qwinsta /server:serverName")
Do While p.Status = 0
    WScript.Sleep 100
Loop
If InStr(p.StdOut.ReadAll, "Active") <= 0 then objShell.Run("mstsc C:\Users\username\Documents\Default.rdp")

実際には、アクティブなユーザーがいるかどうかをチェックするだけですが、ユーザー名がわかっている場合は、最後の行を変更して、特にそれをチェックすることができます。

0
Motes