bgeissl
Goto Top

Robocopy als Dienst ausführen

Hallo,

ich bekomme es nicht hin RoboCopy.exe als Dienst einzurichten. Dabei probiere ich jetzt schon 2 Tage rum. Was bisher geschah...

1.) Auf Win XP SP2 in den Ordner "C:\Program Files\RoboService\" aus dem Windows Resource Kit diese Dateien kopiert:

instsrv.exe
robocopy.exe
srvany.exe

...dann...

2.) mit...

"%ProgramFiles%\RoboService\instsrv.exe" "RoboService1" "%ProgramFiles%\RoboService\srvany.exe"

...den Dienst "RoboService1" installiert.


3.) Dann diese Registryeinträge hinzugefügt (wenn Sie nicht schon durch das installieren da waren):

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RoboService1]
"Type"=dword:00000010
"Start"=dword:00000002
"DisplayName"="RoboService1"
"ObjectName"="LocalSystem"
"Description"="Spiegelt einen Ordner mit RoboCopy"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RoboService1\Parameters]
"Application"="C:\\Program Files\\RoboService\\robocopy.exe"
"AppParameters"="\"C:\\Test\" \"H:\\Test\" /MIR"
"AppDirectory"="C:\\Program Files\\RoboService"
"AppEnvironment"=hex(7):00,00

...plus das, was instsvr.exe installiert hat.

Im Klartext sind die Strings im "Parameters"-Schlüssel so belegt:

Application (REG_SZ)=[C:\Program Files\RoboService\robocopy.exe]
AppParameters (REG_SZ)=["C:\Test" "H:\Test" /MIR]
AppDirectory (REG_SZ)=[C:\Program Files\RoboService]
AppEnvironment (REG_MULTI_SZ)=
(ohne die eckigen Klammern)

Den Service habe ich dann manuell gestartet...

%SystemRoot%\system32\services.msc /s

Es kommt zwar keine Fehlermeldung, aber der Zielordner bleibt leider leer. D. h. RoboCopy funktioniert nicht. Woran könnte das liegen? Das RunAsSvc von http://www.pirmasoft.de/runassvc.php habe ich schon statt srvany probiert, hat aber auch nicht geholfen.

Gruß
bgeissl

Content-ID: 131358

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

Ausgedruckt am: 23.11.2024 um 05:11 Uhr

2hard4you
2hard4you 09.12.2009 um 21:28:50 Uhr
Goto Top
Moin,

was mir direkt auffällt - ob Robocopy läuft, iss eigentlich egal - wie willst Du Quell- und Zieldateien mitgeben - dazu mußt Du die als Job abspeichern - und dann als Task - meinetwegen jede Stunde, ausführen...

für Deinen Denkfehler - Du hast ne Haarschneidemaschine, die dauernd läuft (oder auch net) - aber Du hast weder dem Kopf gesagt, wo sie iss, noch Ihr gesagt, wohin sie die Haare entsorgen soll


Gruß

24
bgeissl
bgeissl 09.12.2009 um 23:05:28 Uhr
Goto Top
Hi 24,

ist vielleicht etwas unübersichtlich, aber die Parameter für den Robocopy-Aufruf stehen im AppParameters-Sting. Der Robocopy-Befehl würde "übersetzt" in der Konsole so aussehen...

%ProgramFiles%\RoboService\robocopy "C:\Test" "H:\Test" /MIR

...was zu Testzwecken ja erstmal reicht. Macht als Dienst natürlich nicht wirklich Sinn, weil sich Robocopy dann nach getaner Arbeit sofort wieder beenden würde. Deswegen würde ich ihn dann im Ernstfall so aufrufen...

%ProgramFiles%\RoboService\robocopy "C:\Ist Ernst" "H:\Ist Ernst" /MIR /MOT:5 /MON:1

...was zur Folge hat, dass sich Robocopy dann nicht mehr beendet und nach 5 Minuten und einer Änderung nochmal das Quellverzeichnis mit dem Zielverzeichnis abgleicht. Funktioniert auch wie gewünscht, wenn ich es von der Konsole aufrufe. Das Konsolefenster bleibt dann auf ewig geöffnet.

Es soll aber als Dienst aufgerufen werden, weil das Konsolefenster dann unsichtbar ist. Und dass es auch läuft, wenn kein Benutzer angemeldet ist, ist ja auch nicht schlecht.

Dass die Parameter im AppParameter-String übergeben werden müssen, hab ich jetzt mal daraus geschlossen, dass der Prozessmonitor procmon.exe ( http://sysinternals.com ) einen Zugriff von srvany.exe angezeigt hat. Leider ist das Programm srvany.exe ja nirgendwo mehr vernünftig dokumentiert (glaube ich).

Ich habe schon überlegt, ob die Anführungszeichen Ärger machen, aber in den Pfaden sind ja Leerzeichen. Da will ich auf die Anführungszeichen nicht verzichten wollen.

Werde morgen mal den Klassiker "Reboot" versuchen face-wink. Bin weiterhin für jeden Tipp dankbar.

Gruß
bgeissl
2hard4you
2hard4you 10.12.2009 um 00:17:45 Uhr
Goto Top
Moin,

wir drehen uns im Kreis - was willste denn überhaupt erreichen?

und Nebenfrage - was geht nicht mit scheduled Tasks mit meinetwegen x Wiederholungen?

Gruß

24