bluepython
Goto Top

Programm mittels Batch starten

Hallo zusammen,

als erstes fasse ich mal kurz zusammen, was ich haben möchte.
Um xx:xx Uhr startet Backup Exec eine Sicherung eines w2k3 Servers. Vor und nach der Sicherung soll eine Batch ausgeführt werden.
Die Batch Dateien liegen auf C:\ des zu sichernden Servers.
Das kann man in Backup Exec auch so weit einrichten. Die Batch vor der Sicherung soll ein Programm beenden und die Batch nach der Sicherung dieses Programm wieder starten.
Der Administrator (Domäne) ist immer angemeldet, die Sitzung wird nur abgemeldet, wenn der Server herunter gefahren wird.

Nun zum Problem:
Als Beispiel für das Programm das geschlossen und wieder gestartet werden soll, nehmen wir mal mspaint.
Das beenden des Programmes via Batch klappt.
Danach läuft die Sicherung an und führt auch die zweite Batch aus, die Paint starten soll, jedoch sehe ich da nichts von.

So sieht meine Batch aus, um Paint zu starten.
start "Paint" /I %SystemRoot%\system32\mspaint.exe

Ich vermutte mal, dass da noch irgendwie ein Befehl rein muss, damit Paint in der aktuellen Sitzung gestartet wird.

Danke für Hilfe im Vorraus.

Content-ID: 168040

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

Ausgedruckt am: 23.11.2024 um 12:11 Uhr

DONNobre
DONNobre 15.06.2011 um 13:15:47 Uhr
Goto Top
das kannst du alles in einer batch machen mit probier es mal so
call "Paint" /I "%SystemRoot%\system32\mspaint.exe"
kopie0123
kopie0123 15.06.2011 um 13:25:50 Uhr
Goto Top
Heyx,

um welches Programm handelt es sich? Wenn es ein Dienst ist, kannst Du auch mit net stop und net start arbeiten. Oder du lässt das programm als Dienst starten, dann geht es auch.

gruß
bluepython
bluepython 15.06.2011 um 13:32:25 Uhr
Goto Top
@DONNobre
call "Paint" /I "%SystemRoot%\system32\mspaint.exe"

da ist die Syntax falsch, mit

call "%SystemRoot%\system32\mspaint.exe"
wird Paint zwar gestartet, aber auf der Oberfläche sehe ich es nicht.


@stingermac
Nur ein Dienst ist es leider nicht, da mache ich so etwas schon mit den Oracle Diensten. Es ist ein kleines Programm, dass ein Kollege geschrieben hat, das bestimmte Dokumente automatisch in unser DMS kopiert.
Friemler
Friemler 15.06.2011 um 13:40:09 Uhr
Goto Top
Hallo bluepython,

ergänze das Batchscript doch mal um einen Pause-Befehl. Dann wird der CMD-Prozess, der das Script ausführt, nicht automatisch beendet und Du kannst im Taskmanager die Sitzungskennung und das Benutzerkonto ermitteln, unter dem das Script ausgeführt wird.

Gruß
Friemler
bluepython
bluepython 15.06.2011 um 13:49:49 Uhr
Goto Top
Habe ich gerade gemacht, als Administrator läuft es, das ganze müsste aber in der Sitzung 1 starten, es läuft aber in der Sitzung 0
bluepython
bluepython 15.06.2011 um 14:13:24 Uhr
Goto Top
Was mir gerade noch aufgefallen ist, beim call Befehlt wird das Eingabeaufforderung Fenster wohl nicht geschlossen.
Friemler
Friemler 15.06.2011 um 14:33:29 Uhr
Goto Top
Zitat von @bluepython:
das ganze müsste aber in der Sitzung 1 starten, es läuft aber in der Sitzung 0

Ist das denn wirklich ein Server 2003? Oder evtl. doch ein 2008er?

Die verschiedenen Sitzungen sind ja ein Sicherheitsfeature. Da dürfte es schwer werden, von einem Prozess, der in Session 0 läuft (CMD) ein Programm in Session 1 zu starten.

Gruß
bluepython
bluepython 15.06.2011 um 14:38:45 Uhr
Goto Top
es ist zu 100% ein Windows 2003 Server mit SP2
Friemler
Friemler 15.06.2011 um 14:57:05 Uhr
Goto Top
Hallo bluepython,

Du schreibst, das zu startende Programm würde automatisch Dateien kopieren. Dann wäre ja keine Benutzerinteraktion nötig. Warum ist es ein Problem, wenn das Programm nicht in Session 1 läuft? Wodurch wird überhaupt Session 1 gestartet? Auf Server 2003 laufen alle Dienste und Programme in Session 0. Eine andere Session wird doch normalerweise nur für eine Remote Desktop Verbindung gestartet.

Gruß
Friemler
bluepython
bluepython 15.06.2011 um 15:23:14 Uhr
Goto Top
Ich denke es wäre kein Problem wenn es nicht in Session läuft, man würde dann nur die GUI nicht sehen, und so mit auch nicht was gerade verarbeitet wird.
Ich habe das ganze erst einmal über Geplante Task gelöst. Gefällt mir zwar nicht, aber die Sicherung muss laufen.
60730
60730 15.06.2011 um 15:41:30 Uhr
Goto Top
moinsen,

Der Administrator (Domäne) ist immer angemeldet, die Sitzung wird nur abgemeldet, wenn der Server herunter gefahren wird.

Das ist doch schon der erste grobe Unfug, den man nicht machen sollte und für den es div. Prüfungsfangfragen bei jedem MSCE Kurs gibt.

@ Friemler:
Sein Backup Exec läuft ganz sicher in Session 0 und da das die Batch startet kann das auch nur in Session 0 gestartet werden.

@ Blaue Schlange:
Ich weiß ja nicth, wann du arbeitest und wann du deine Server sicherst, aber denkst du nicht auch, dass ein Log was die "Anwendung" gemacht hat sinniger ist, als nachts vorm Server zu hocken?
Friemler
Friemler 15.06.2011 um 15:57:15 Uhr
Goto Top
Hallo bluepython,

zu Kontrollzwecken könntest Du eine RDP-Verbindung zum Server auf Session 0 aufmachen. Man muss MSTSC am RDP-Client dazu mit dem Parameter /CONSOLE starten. Der am Server lokal angemeldete Benutzer wird dabei aber abgemeldet, was ja, wie T-Mo schon sagte, sowieso sicherer wäre.

Gruß
Friemler
Clijsters
Clijsters 15.06.2011 um 20:41:28 Uhr
Goto Top
[OT] (@TimoBeil)
Das ist doch schon der erste grobe Unfug, den man nicht machen sollte und für den es div. Prüfungsfangfragen bei jedem MSCE Kurs gibt.
Warum? Vlt. möchte er Telefonsupport leisten und dem Kunden das "nachts vorm Server hocken" nahebringen...
Mehr Ernst...
Ich halte es ganz einfach für irrelevant, in welcher Session dort irgendwas gestartet wird, ich kenne wenige Backup-Anwendungen, die programmiert werden, um von hockenden Admins oder telefonierenden Mitarbeitern beobachtet zu werden.


Gruß
Dominique Entschuldigt sich für seine unproduktiven, inkompetenten Kommentare und dafür, dass er eigentlich nur schon genannte Fakten wiederholt, wie im gerade auffällt.