Quantcast
Channel: server – Andy's Blog
Viewing all articles
Browse latest Browse all 345

Windows: RemoteApps trennen

$
0
0

RemoteApps sind eine feine Sache bei der Arbeit mit Terminalservern, schließlich muss es nicht immer ein vollständer Desktop sein. Kommen allerdings mobile Computer (aka Notebooks) ins Spiel, ist es nicht immer wünschenswert jede RemoteApp z.B. wegen eines externen Termins zu schließen, um sie im Anschluss wenn man wieder da ist, erneut zu starten.

Mit dem Bordmittel-Befehl „tsdiscon“ lassen sich Sitzungen leicht trennen. Damit das Ganze für bestimmte Server als auch Benutzer möglichst einfach und mit Sicherheitsabfrage klappt, wurde folgendes Skript erstellt:

@echo off

title RemoteApps trennen

cls

rem Konfiguration

 rem Benutzername und Terminalserver mittels Blindparameter uebergeben.

  set SessionUsername=%1
  set WTSServer=%2

 rem Wird kein Parameter uebergeben, den aktuell angemeldeten Benutzer und den lokalen Computer verwenden.

  if %SessionUsername%.==. set SessionUsername=%username%
  if %WTSServer%.==. set WTSServer=Localhost

rem Aktuelle Sitzungen auflisten

 query session /server:"%WTSServer%" | find "%SessionUsername%" > "%TEMP%\Session.txt"
 set /p Session=<"%TEMP%\Session.txt"

rem ID des Benutzers ermitteln

 rem Ab Zeichen 43 in der Zeile,
 rem drei Stellen in die Variable schreiben.

  set SessionID=%Session:~43,3%

 rem Ggf. vorhandene Leerstelle(n) entfernen, falls die ID nur ein- oder zweistellig ist.

   set "SessionID=%SessionID: =%"

rem "Session.txt" entfernen

 del "%TEMP%\Session.txt" /q

rem RemoteApps trennen

 :Abfrage
 echo.
 set /p Answer=RemoteApps von "%WTSServer% - %SessionUsername%" trennen (Ja/Nein)?

 if /i %answer%==j tsdiscon %SessionID% /Server:%WTSServer% & goto EOF
 if /i %answer%==n goto EOF
 echo.
 echo Ungueltige Eingabe
 goto Abfrage

 :EOF

Das Skript kann lokal auf dem Client oder auf dem Server gestartet werden. Werden keine Parameter angeben, wird der aktuelle Benutzername und „Localhost“ als Server verwendet.

Alternativ kann sowohl Benutzername als auch Servername oder -IP übergeben werden:

DisconnectRemoteApp.cmd <Benutzername> <Terminalserver>

Zum Beispiel:

DisconnectRemoteApp.cmd aweber 192.168.0.13

Bevor die Verbindung getrennt wird, erscheint eine Sicherheitsabfrage:

Einziger Schönheitsfehler auf Client-Seite nachdem die Verbindung getrennt wurde ist folgende Meldung:

Getestet mit Windows 8.1 Pro und Windows Server 2012 R2.


Viewing all articles
Browse latest Browse all 345


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>