Aufgabe bei Erreichbarkeit starten

Fireball89

Captain
Registriert
Aug. 2007
Beiträge
3.498
Hallo Leute,

ich möchte mit der Win7 Aufgabenplanung gerne eine Aufgabe bei Erreichbarkeit eines anderen Windows-PCs im Netzwerk ausführen. D.h. wenn mein Netbook im Netzwerk vorhanden ist, dann Aufgabe ausführen.

Möchte damit eine Dateisynchronisierung per FreeFileSync starten.

Habe schon gegoogelt, aber nix gefunden. Ist das möglich?

Gruß,
Fireball89
 
Das ist eigentlich recht einfach - muss aber sagen, dass mir die Anwendung nichts sagt.

Eine einfache .bat Datei reicht.

In jener führst du einen ping-command aus...
---
ping laptop
---
Danach brauchst du eine Abfrage, ob der Ping erfolgreich war. Der Befehl dafür lautet afaik

if errorlevel 1 (nicht sicher... könnte auch errorcode sein..google sollte nochmals helfen..
Jetzt eine Anweisung was passieren soll, wenn Ping erfolgreich:

if errorlevel 1
go to NAMEDESBEFEHLS
else exit (Abbruch bei Misserfolg)

Nun muss NAMEDESBEFEHLS definiert werden:

NAMEDESBEFEHLS
c:\programme\freefilesync\sync.exe

Wenn man im Programm noch Eingaben machen muss funktioniert es natürlich nicht.
Aber grob ist das der Ablauf...

Edit: Die .bat legst du als geplanter Task ab für die du einen Starttermin auswählst oder Bedingungen...
 
Toll dann habe ich das Programm gestartet. Aber das syncen geht nicht ohne Benutzereingabe. Dafür gibts simple Mauszeiger Makros.
 
@qwertzuio: Nein, darum gehts nicht. Brauche keine Benutzereingabe.

ja, ist mir eben auch eingefallen. Aber da sich ne batch nicht so leicht verstecken lässt, musste (wie immer) AutoIT ran. Wenn jemand noch ne schönere Lösung hat, immer her damit.
 
Ja das war der Punkt den ich meine. Wenn weitere Eingaben nötig sind bringt die .bat recht wenig. Evtl gibt es Programme die vorgefertigte Tasks ausführen, oder - wenn möglich und nicht zu aufwändig - die zu syncenden Dateien/Ordner auch via .bat behandeln. Oder erwähnte Maus-Makros

Edit:
Was meinst du mit "verstecken lassen" ?
 
Na, die Batch müsste ich ja dann möglichst oft starten, d.h. stündlich. Ich will ja nicht immer das blöde CMD-Fenster sehen.

Da fällt mir auch grad ein, dass es so doch blöd ist. Wenn ich mein Netbook zuhause einschalte, möchte ich dass die Sync direkt gestartet wird und nicht erst zur nächsten vollen Stunde. Und nein, ich möchte jetzt nicht noch FreeFileSync auf dem Netbook installieren^^
(das war der Grund warum ich Live Mesh den Laufpass gegeben hab)

Also man kann eine Aufgabe auch per Ereignis-Trigger starten, aber wie finde ich das passende Ereignis?
 
Wie wärs wenn du es einfach machst und Dropbox nimmst, oder Microsoft. Bei letzterem 25GB kostenlos. Oder Asus Sync 8 GB kostenlos.
 
@qwertzuio: Ich habe mehr als 30GB Musik und möchte diese offline synchronisieren.

Gibts denn niemanden, der sich mit diesen Windows Ereignissen auskennt? Da muss doch ein Protokoll-Eintrag existieren, sobald sich ein Rechner im Netz anmeldet.
 
Ich mache das so: Ich habe mir per Overplay ein Itunes Konto mit Wohnsitz USA angelegt. Ich habe meine 59GB Musik mit der Apple Cloud synchronisiert. Das upzuloaden hat im Hintergrund vier Wochen gedauert. War echt krank. Itunes hat meine Musik dann mit Hiquality Mp3s aus der Cloud ersetzt. Leider ist das nur in den USA möglich, deswegen der Proxy.
Jetzt kann ich mich in jedem Itunes einloggen und habe Zugriff auf meine Musik. Sogar im Auto auf der Autobahn mit Overplay für Android und Isyncr aus dem Google Play Store.
 
Ich nutze ja schon Google Music, aber brauche die Offline-Sync zusätzlich. Versteh mir nicht falsch, ich danke dir für deine Hilfe, aber ich würde doch lieber gerne beim Thema Aufgabenplanung (und Ereignis-Triggern) bleiben und den Kontext der Synchronisierung lieber aussen vor lassen.
 
Na, die Batch müsste ich ja dann möglichst oft starten, d.h. stündlich. Ich will ja nicht immer das blöde CMD-Fenster sehen.

das kannst du auch per VB Script lösen, in dem du zB. prüfst ob die Freigabe verfügbar ist:

Code:
Set ObjFso = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("WScript.Shell")
StrPfad = "\\Server\Freigabe"

if ObjFso.FolderExists(StrPfad) then oShell.exec ("C:\Programme\Freefilesync\Sync.exe")
 
Cool danke, das eliminiert schon mal die Notwendigkeit von AutoIT.
Jedoch müsste ich das Script immer noch stündlich starten und nicht Ereignis-getriggert :(
 
du kannst den VBS auch nur einmal starten lassen, so das er dann automatisch im Hintergrund als Schleife läuft, mittels DO und LOOP.


Code:
Set ObjFso = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("WScript.Shell")
StrPfad = "\\Server\Freigabe"

Do
if ObjFso.FolderExists(StrPfad) then oShell.exec ("C:\Programme\Freefilesync\Sync.exe")
Exit Do

Loop

Das lässt sich auch zeitverzögert wiederholen mit "Wscript.Sleep 1000", dass entspricht einer Verzögerung von 1 Sekunde.
 
Danke, aber das war mir schon klar. Weiss denn niemand etwas über die Ereignis-Trigger?
 
ohne Domain-Server wird das kaum funktionieren. Woher soll PC1 wissen, dass sich PC2 angemeldet hat?

Einfach wäre doch, den Sync über das Netbook zu starten.
 
Aber wozu gibts tonnenweise Ereignis-Kategorien wie z.B. NetBIOS, wenn sie sowieso nicht verwenden werden?

Mein Desktop-PC bekommt ja irgendwann mit, dass mein Netbook im Netzwerk ist, sonst würde es ja nicht unter "Netzwerk" auftauchen. Meinetwegen auch nur durch Polling, aber löst diese Statusänderung kein Ereignis aus?
Ergänzung ()

Also das was ich vorhatte erfüllt übrigens RealTimeSync. Das ist in FreeFileSync bereits enthalten, aber gut versteckt :D

Habe jetzt nur ein Programm aufm Desktop-PC im Hintergrund laufen, welches beide Seiten auf Änderungen überwacht und automatisch synchronisiert.

Naja, falls doch noch jemand was zum Thema Ereignis-Trigger weiß, dann bin ich trotzdem ganz Ohr. Das kann man ja immer mal brauchen.
 
Zurück
Oben