Skript für Benutzer, die Remote-Sitzung beenden

661
Mickycampbell

Ich habe ein paar DB-Server, auf denen jeweils eine RemoteApp ausgeführt wird, die Benutzer starten, um auf diese Datenbank zuzugreifen. Das Problem ist, dass die Anwendung nicht immer ordnungsgemäß beendet wird, wenn der Benutzer sie beendet, was eine Remote-Sitzung offen lässt und der Benutzer nicht mehr auf die App zugreifen kann.

Was ich versuche, ein Skript zu erstellen, das jede bestehende Verbindung zu jedem bestimmten Server beenden würde (dh Skript A würde für RemoteApp A beendet, Skript B würde für RemoteApp B beendet).

Nicht sicher, ob es eine zusätzliche Komplikation hinzufügt, die Benutzer arbeiten jedoch alle in einer Remote-Desktop-Umgebung (dh der Benutzer stellt eine Verbindung zu RDS1 oder RDS2 her und startet dann RemoteApps für DB1, DB2 usw.).

Auf allen Servern wird Windows Server 2012 R2 ausgeführt.

2
Sie sind nicht sicher, ob dies Ihren Anforderungen entspricht, Sie können den Remote-Server jedoch auch so konfigurieren, dass die Sitzungen des Benutzers nach einer bestimmten Zeit automatisch beendet werden, nachdem die Verbindung getrennt wurde. Kein Skript erforderlich Twisty Impersonator vor 8 Jahren 0
Ich habe das derzeit eingerichtete Setup, jedoch hat der Kunde widersprüchliche Anforderungen, um schnell zu beenden und die Sitzung für einen längeren Zeitraum offen zu halten (Leerlaufzeit von bis zu einer halben Stunde). Die Freuden der IT Mickycampbell vor 8 Jahren 0
Micky - Gibt es ein Update dazu und ob die Antwort, die ich gegeben habe, bei der Aufgabe geholfen hat? Pimp Juice IT vor 7 Jahren 0

1 Antwort auf die Frage

2
Pimp Juice IT

Sie können Taskkill- Befehle verwenden, um einen bestimmten Prozess auf einem bestimmten Server mit einem bestimmten Benutzernamen zu beenden (siehe unten).

Beenden Sie einen Prozess, indem Sie ihn basierend auf ...

  1. Der Name des Remote-Servers, den er ausführt
  2. Der Benutzername, der den Prozess ausführt
  3. der Prozessname auf dem Remote-Server

Beispielbefehl

Achten Sie darauf, die entsprechenden Werte in den setzen <RemoteServerName>, <Username>und <appname.exe>Teile des taskkill Befehl unten entsprechend für Ihre Umgebung und Bedürfnisse.

TASKKILL /S <RemoteServerName> /F /FI "USERNAME eq <Username>" /IM <appname.exe> 

Weitere Ressourcen

  • Taskkill

  • Taskkill /?

  • /S system Specifies the remote system to connect to.  /FI filter Applies a filter to select a set of tasks. Allows "*" to be used. ex. imagename eq acme*  /F Specifies to forcefully terminate the process(es).  /IM imagename Specifies the image name of the process to be terminated. Wildcard '*' can be used to specify all tasks or image names  Filters:  USERNAME eq, ne User name in [domain\]user format 
Interessant, ich werde ein bisschen herumspielen. Vielen Dank Mickycampbell vor 8 Jahren 0
@Mickycampbell Kein Problem, lass mich einfach wissen, ob dies für dich funktioniert. Fühlen Sie sich frei, meine Antwort zu bestätigen, wenn Sie möchten, und fühlen Sie sich auch frei, meine Antwort zu akzeptieren (http://meta.stackexchange.com) / questions / 5234 / how-do-Accepting-a-answer-work), wenn Sie die Lösung für Ihre Bedürfnisse finden. Pimp Juice IT vor 8 Jahren 0