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, 3062 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Outlook & Mail
gelöst Email Anhänge speichern VB Script aber nur bestimmte Dateitypen (Outlook) (4)

Frage von LindeUnimog zum Thema Outlook & Mail ...

Batch & Shell
Batch Datei wird per Aufgabenplanung nicht ausgeführt (7)

Frage von Corraggiouno zum Thema Batch & Shell ...

VB for Applications
gelöst VB Script rekursiv statt nur ein Ordner (4)

Frage von Saschaaaaa zum Thema VB for Applications ...

VB for Applications
gelöst VB Script nach gefundenem Wort die nächsten 4 Zeichen ersetzten (2)

Frage von deutsch73 zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...