easyrider
Goto Top

RDP Session wird nicht sauber beendet

Hallo liebe Forumgemeinde,

mein erster Beitrag....face-smile

User melden sich auf einem Win Server 2000 per rdp Session an. Automatisch wird beim anmelden eine Datenbank (Access) gestartet. Access wird über eine Batchdatei gestartet, die sich wiederum auf dem Server befindet. Im RDP Client, unter der Registerkarte "Programme" wiederum ist der Pfad zu der entsprechenden Batch eingetragen.
Wenn die User Access schließen wird auch automatisch die RDP Session abgemeldet.
Funktioniert auch alles einwandfrei.

Künftig sollen aber aus der DB heraus PDF Files mit dem Programm Free PDF XP erstellt werden. Damit Free PDF funktioniert, muss aber noch das Programm "fpassist.exe" gestartet werden.
Problem ist dann aber, dass die RDP Session nicht beendet wird, wenn der User Access schließt. Die Session versucht sich zwar normal abzumelden, bleibt dann aber hängen und der User sieht nur noch den Desktop des Servers und es geht nicht mehr weiter.

Irgendwie müsste ich es also einrichten, dass auch noch "fpassist.exe" beendet wird. Nur habe ich da keine Ahnung wie ich das machen sollen.
Könnt ihr helfen?

Grüße
Easyrider

Content-Key: 87399

Url: https://administrator.de/contentid/87399

Printed on: April 20, 2024 at 01:04 o'clock

Member: ibwerner
ibwerner May 11, 2008 at 23:26:31 (UTC)
Goto Top
Es währe möglich Access in der Batchdatei mit: start /wait "(Access...)" zu starten, wobei die Batchdatei noch aktiv bleibt und in der nächsten Zeile zu schreiben: shutdown.exe -l
Dadurch wird der User nachdem Access beendet wurde automatisch abgemeldet. Alle von ihm gestarteten Prozesse werden Terminiert. Zu beachten ist hierbei jedoch, dass die Anwendung shutdown.exe nicht Teil von Windows 2000 ist. Man könnte sie jedoch aus Windows XP entnehmen und in den gleichen Pfad unter Windows 2000 wieder einfügen. Zu finden ist die Datei unter: %systemroot%\system32\shutdown.exe


Beispiel.cmd-----
rem Free PDF starten
fpassist.exe
rem Access starten und auf beendung warten...
start /wait "%programfiles%\Microsoft Office\Office11\Access.exe -...."
rem User abmelden sobald Access beendet wurde
shutdown.exe -l
End-of-File-----

Gruß
ibwerner
Member: easyrider
easyrider May 12, 2008 at 13:14:59 (UTC)
Goto Top
vielen Dank an ibwerner!
habe das eben mal auf nem Win 2003 versucht......war erfolgreich!!

Wenn es dann noch funktioniert, dass man die Shutdown.exe einfach kopieren kann, dann ist das Problem gelöst....kann ich aber erst morgen testen.

Danke und Grüße
Easyrider
Mitglied: 25472
25472 May 14, 2008 at 07:18:49 (UTC)
Goto Top
Nur noch dazu eine Frage:

Kann man damit jede beliebige Datei/Programm auf einem Server öffnen und automatisch schließen lassen?

Wir haben hier denn Fall, dass wir nur ein Programm auf einem virtuellen Server (linux) auf einem Windows 2003 Server (DC) von jedem Arbeitsplatz aus starten wollen.

Gruß
tobman112
Member: ibwerner
ibwerner May 15, 2008 at 14:57:00 (UTC)
Goto Top
Um Programme aus dem Netzwerk auszuführen müssen diese, bzw. der Freigabeordner, um in einer Batch-Datei geladen zu werden, als Netzwerklaufwerk eingebunden werden. (ich gehe mal davon aus, dass ein Linux-Server mit einem Samba-Share verwendet wird.

Beispiel:
run_net.cmd---
rem Befehlszeilen werden nicht angezeigt
@echo off
rem Hier Netzwerkpfad eintragen
set netPath="\\server\freigabe"
set AppName="Anwendung.exe"
rem Hier Netzlaufwerksbuchstabe eintragen (z.B. Pface-smile
set driveLetter="P:"
rem Befehl zum Einbinden des Netzlaufwerks
net use %driveLetter% %netPath%
rem hier könnten noch andere Programme ausgeführt werden
rem Programm starten und auf beenden warten
start /wait %driveLetter%\%AppName%
rem ODER:
rem programm Starten
start %driveLetter%\%AppName%
rem und jetzt andere anwendungen ausführen
rem und dann programm wieder schließen (prozess killen)
taskkill /f /im %AppName%
rem Netzlaufwerk wieder löschen
net use %driveLetter% /delete
---end-of-file---
ANMERKUNG:
Mit der Anweisung "start" lassen sich auch Dateien öffnen.
z.B.: "start /wait %windir%\setuplog.txt"

WICHTIG:
Der momentan angmeldete User muss über Zugriffsberechtigungen auf die Freigabe verfügen!
Sollte dies nicht der Fall sein, so muss die Zeile "net use %driveLetter% %netPath%" in
"net use %driveLetter% %netPath% [kennwort] /user:"[benutzername@domain]" (Die -Klammern sagen nur aus, dass diese Werte ersetzt werden sollen) geändert werden.
Falls es nicht erwünscht ist, dass das Passwort klar lesbar in der Batchdatei zu lesen ist, so kann man auch schreiben:
"net use %driveLetter% %netPath% /user:"[benutzername@domain]", wobei der User in diesem Fall in der Konsole nach dem Kennwort gefragt wird.