Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Robocopy-Batch lässt sich per VB-Script über Aufgabenplanung unsichtbar starten - aber nicht beenden

Frage Microsoft Windows Tools

Mitglied: Naedil

Naedil (Level 1) - Jetzt verbinden

22.10.2014, aktualisiert 22:13 Uhr, 3231 Aufrufe, 3 Kommentare

Hallo an alle,

ich habe eine Frage zu RoboCopy (System: Windows 7 Prof.); hier kurz die 'Vorgeschichte':
Ich verwende derzeit RoboCopy zum Monitoren und Synchronisieren eines Verzeichnisses. Geänderte Dateien werden so in ein verschlüsseltes Verzeichnis auf dem gleichen Rechner kopiert (die verschlüsselten Daten werden später durch andere Prozesse nach außen synchronisiert).

Zur Automatisierung wollte ich die RoboCopy-Synchronisation ursprünglich als Dienst einbinden. Dies scheiterte jedoch an meinem Wunsch, für jeden Tag ein getrenntes Logfile zu erzeugen. In einer Batchdatei kann hierfür die %date% - Umgebungsvariablen abgefragt werden. Als Start-Parameter beim Einrichten eines Dienstes kann ich dies jedoch nicht übergeben, da der Parameter hierfür (/LOG+:"c:\Logfiles\RoboCopy.%date:~-4%-%date:~-7,2%-%date:~-10,2%.log") in der Form nicht vom Dienst verarbeitbar ist; jedenfalls scheiterte der Dienststart damit jedesmal. Vielleicht muss der Syntax dann auch angepasst werden - ich hab's nicht hinbekommen... Leider kann auch in einer RoboCopy-Job-Datei nicht mit Variablen gearbeitet werden, sonst hätte ich mir den Pfad variabel aus der Job-Datei geholt.

Deshalb bin ich zum Aufgabenplaner gewechselt und starte den RoboCopy-Prozess nun hier beim Einloggen in den Benutzeraccount (mit etwas Wartezeit). Damit das ganze unsichtbar erfolgt, verwende ich hierfür VB-Script:

Set WshShell = WScript.CreateObject("WScript.Shell")
sDate = Year(Now) & "-" & Month(Now) & "-" & Day(Now)
sLogfile = "c:\Logfiles\RoboCopy." & sDate & ".log"
Return = WshShell.Run("C:\Windows\system32\robocopy.exe /JOB:""PfadZurJobdatei.rcj"" /LOG+:" & sLogFile, 0, True)

Sowohl der nicht sichtbare Aufruf des Prozesses und auch das Schreiben in eine Logdatei mit variablen Namensteil funktioniert damit prima.

Was jetzt noch stört: Das (manuelle) Beenden der Aufgabe im Aufgabenplaner bewirkt leider nicht, dass der RoboCopy-Process beendet wird. Die Aufgabe steht dann zwar als "Beendet", jedoch läuft RoboCopy noch und hält auch den Zugriff auf die Logdatei.

Gibt es eine Möglichkeit, die Umsetzung zu verbessern, so dass über den Aufgabenplaner auch ein sauberes Beenden des Prozesses erfolgt?

Vielen Dank,
Daniel
Mitglied: 114757
LÖSUNG 22.10.2014, aktualisiert um 22:13 Uhr
Hallo Daniel,
starte das Script im Taskplaner doch mit einem anderen Useraccount. Dann ist es erstens für den gerade angemeldeten User sowieso unsichtbar und wenn du Robocopy so aufrufst
cmd /c robocopy .......
kannst du auch deine Datums Umgebungsvariablen in der Zeile nutzen, oder schreibst das alles in eine Batch.

Beim Beenden des Tasks wird dann auch dein Script beendet.

Gruß
jodel32
Bitte warten ..
Mitglied: Naedil
22.10.2014, aktualisiert um 22:04 Uhr
Hallo Jodel32,

super, vielen Dank.
Ich habe als Programm nur "cmd" eingetragen, die Parameter sind dann:
/c "C:\Windows\system32\robocopy.exe" /JOB:"c:\PfadZumJobfile\Jobfile.rcj" /LOG+:"c:\PfadZumLogfile\RoboCopy.%date:~-4%-%date:~-7,2%-%date:~-10,2%.log"

Ich verwende ein anderes Benutzerkonto, das Fenster bleibt unsichtbar und beim Beenden der Aufgabe, wird auch der RoboCopy-Prozess nun beendet. Die dynamische Bennung des Logfiles mit aktuellem Datum klappt auch.

Zum Benutzerkonto hätte ich noch eine Frage: Ich habe hier jetzt das Administratorkonto verwendet, da ich sonst kein weiteres anders Benutzerkonto habe. Ist das bzgl. der Rechte bedenklich und sollte ich daher noch ein anderes Userkonto für solche Aufgaben anlegen, oder kann ich den Adminaccount verwenden?

Viele Grüße, Daniel
Bitte warten ..
Mitglied: 114757
23.10.2014, aktualisiert um 09:21 Uhr
Ist das bzgl. der Rechte bedenklich und sollte ich daher noch ein anderes Userkonto für solche Aufgaben anlegen, oder kann ich den Adminaccount verwenden?
Hallo Daniel,
ist eigentlich Jacke wie Hose, wenn jemand auf dein System physischen Zugriff hat wird er an jede Zugangsdaten kommen, egal ob du nun einen anderen Account oder den Admin-Account benutzt. Am besten ist es natürlich immer einen Account nur mit den Rechten auszustatten, die das Script tatsächlich benötigt. bei Bedarf lässt sich dieser Nutzer ja dann auf der Anmeldeseite via Registry-Eintrag ausblenden.

Gruß
jodel32
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst VB-Script per Aufgabenplanung (2)

Frage von S4kar97 zum Thema VB for Applications ...

Batch & Shell
gelöst WinSCP in einer Batch starten durch Aufgabenplanung (13)

Frage von Xanathos57 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch mittels Aufgabenplanung auslösen - fehlerhaft (4)

Frage von intane zum Thema Batch & Shell ...

Neue Wissensbeiträge
Entwicklung

Exploit Development

Anleitung von burhanudinn123 zum Thema Entwicklung ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
Leiten "dumme" Switches VLAN-Tags mit durch? (19)

Frage von coltseavers zum Thema Netzwerkprotokolle ...

Batch & Shell
Batch zum suchen und verschieben von Verknüpfungen (12)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (12)

Frage von departure69 zum Thema Windows Server ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...