Server 08 RDP: Kann gewarnt werden, wenn derselbe Benutzer bereits verbunden ist?

7

Derzeit führen wir einige Entwicklungs- und Überwachungsarbeiten über 1 RDP-Konto (Administrator) auf einem Server 2008 R2-Computer durch, da jeder dieselbe Instanz von allem gemeinsam nutzen muss, um die Konsistenz sicherzustellen. Das Problem ist, dass, während eine Person verbunden ist und arbeitet, wenn eine andere Person versucht, eine Verbindung mit demselben Konto herzustellen, die erste Person gestartet wird und die Kontrolle der zweiten Person übertragen wird. Die einzige Warnung kommt etwas zu spät, wenn die erste Person die Meldung "Ein anderer Benutzer ist mit dem Remotecomputer verbunden, sodass Ihre Verbindung unterbrochen wurde" erhält.

Gibt es eine bekannte Möglichkeit, den eingehenden Benutzer zu warnen, dass bereits eine Verbindung besteht (ähnlich der Art von Nachricht, die Sie möglicherweise erhalten, wenn Sie mit verschiedenen Konten arbeiten), oder dem Opfer die Möglichkeit zu geben, nicht gestartet zu werden?

Trent
quelle

Antworten:

5

Einige schlechte Nachrichten für Sie: Es gibt keine Möglichkeit, RDP zu veranlassen, Sie zu warnen, wenn Sie sich bei einer vorhandenen Sitzung anmelden möchten. Es warnt nur, wenn Sie sich über RDP anmelden und ein anderer Benutzer bereits angemeldet ist. Trauriges Gesicht


Warten Sie ... es könnte theoretisch möglich sein, Remote-Scripting zu verwenden. Mit dem queryBefehl und der userOption können Sie eine Liste der angemeldeten Benutzer abrufen. Sie können dann nach dem Benutzernamen suchen, der Sie interessiert, und prüfen, ob sich das ACTIVETag in der STATESpalte befindet. Von dort können Sie eine RDP - Datei aufrufen , wenn der Benutzer nicht angemeldet ist oder eine Warnmeldung senden , wenn der Benutzer sich angemeldet.

Es ist hausgemacht, aber es sollte funktionieren.

Beispiel von einem meiner Windows-Server:

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
Wesley
quelle
klingt nach einer Möglichkeit, obwohl ich noch nie ein Remote-Scripting durchgeführt habe und es lernen müsste
Trent
@Trent Es ist der einzige Weg, dies zu erreichen, und es ist keine so große Sache. Schauen Sie sich WinRM und PowerShell Remoting an . Es ist nur eine einfache Sache, ein paar Befehle auszuführen, ein paar Dinge in Variablen und ein ifoder zwei Anweisungen zu speichern .
Wesley
Da "Benutzer abfragen" nur ein Befehl dos ist, kann jede Programmiersprache ihn ausführen und analysieren. Wir haben einen Webserver auf dem Computer, daher denke ich, dass ich dazu einfach ein per Browser zugängliches Perl- oder PHP-Skript schreiben werde. Sollte ein 1-Liner sein. Vielen Dank
Trent
@Trent Super! Hoffe es klappt.
Wesley
0

Dieses vbs-Skript kann verwendet werden, um zu vermeiden, dass jemand rausgeschmissen wird, der bereits unter demselben Benutzernamen bei einem Windows-Server angemeldet ist:

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")

Es wird wirklich nur geprüft, ob überhaupt ein aktiver Benutzer vorhanden ist. Wenn Sie jedoch Ihren Benutzernamen kennen, können Sie die letzte Zeile ändern, um sie speziell zu überprüfen.

Motes
quelle