Milka 0 Geschrieben 24. Januar 2018 Melden Teilen Geschrieben 24. Januar 2018 (bearbeitet) Hallo! Mein Problem betrifft: Windows 10 Prof auf einem Tablet, Netzwerkfreigabe eines Unix-Servers Ich habe folgendes Problem: Eine Software soll auf einen manuellen Auslöser hin Daten auf ein Netzlaufwerk schieben (vereinfach beschrieben). Das Netzlaufwerk ist als "N:" verbunden. Das Gerät wird Morgens mit aktiver WLAN-Verbindung gestartet, das Netzlaufwerk verbindet sich. Während des Mobilen Einsatzes wird das Netzlaufwerk als nicht verbunden markiert. Das Gerät kommt gegen Abend zurück, verbindet sich mit dem WLAN, das Netzlaufwerk wird nicht wieder als aktiv markiert. Die Software will auf das Netzlaufwerk schreiben, kann dies nicht und bricht ab (weil inaktiv). Doppelklickt der Nutzer das Netzlaufwerk im Explorer, wird es als aktiv markiert und die Software kann Dateien kopieren. Es ist laut Hersteller nicht möglich, dies auf UNC Pfade dauerhaft sauber umzustellen, die Software ist auf das Netzlaufwerk angewiesen. Meine Idee einer Lösung: Eine Batchdatei, die das Netzlaufwerk pingt, und bei erfolgreichem Ping dieses neu verbindet. Ich würde dies gern an das Event knüpfen, dass sich das Gerät mit dem WLAN verbindet. Hier meine Frage: Ich kann im Eventviewer einfach nichts finden, was mit dieser Verbindung zu tun hat und woran ich die Batch hängen kann (Event-ID). Hier der vollständigkeit halber die Batch (ein Entwurf, daher auch noch "pause" etc enthalten, sowie ein Platzhalter für eine alternative lokale Aktion wenn das Laufwerk nicht verfügbar ist) ping IPSERVER -n 1 if errorlevel 1 goto nichtda echo "Errorlevel1" net use n: /del /y net use n: "\\IPSERVER\ORDNERFREIGABE" goto end :nichtda :: Alternativ lokal verbinden? :end pause Vielen Dank und Grüße Milka bearbeitet 24. Januar 2018 von Milka Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 24. Januar 2018 Melden Teilen Geschrieben 24. Januar 2018 Moin, ob du ein passendes Event dafür findest, kann ich nicht sagen. Ist eine Recherche wert, man müsste dann aber testen, ob es läuft wie gewünscht. EInfacher wäre evtl., per Taskplaner das Skript periodisch aufzurufen und es dann die Gegebenheiten prüfen zu lassen. Der Ressourcenbedarf dafür dürfte sehr überschaubar sein. Mögliche Logik: Skript läuft per Taskplaner z.B. alle 5 Minuten Erster Check: Ist das Zielnetzwerk erreichbar? Ein einfacher Ping dürfte ausreichen. Falls nein: Beenden. Falls ja: Zweiter Check: Funktioniert das verbundene Netzlaufwerk? Falls ja: Kopierjob, User benachrichtigen oder was auch immer. Falls nein: Netzlaufwerk trennen und neu verbinden Zweiten Check erneut ausführen, evtl. einen Schleifenzähler, der den Vorgang bei wiederholtem Misserfolg abbricht. Zu dem Erreichbarkeitscheck: [Wie führe ich eine Aktion nur aus, wenn der Ziel-Host erreichbar ist? | faq-o-matic.net]https://www.faq-o-matic.net/2003/10/12/wie-fuehre-ich-eine-aktion-nur-aus-wenn-der-ziel-host-erreichbar-ist/ Gruß, Nils Zitieren Link zu diesem Kommentar
Milka 0 Geschrieben 24. Januar 2018 Autor Melden Teilen Geschrieben 24. Januar 2018 Moin, danke für die Antwort. Ich würde die Lösung mit dem Event zwar erstmal priorisieren, habe aber die Batch jetzt erst einmal so umgebaut, dass sie per Aufgabenplanung funktioniert. ping IPSERVER -n 1 if errorlevel 1 goto ende IF EXIST N:\ goto ende net use n: /del /y net use n: "\\IPSERVER\FREIGABE" goto ende :ende Sollte noch jemand über die Ereignis ID einer WLAN-Verbindung stoßen - ich würd mich freuen. Natürlich suche ich auch selbst noch weiter, allerdings habe ich nach vielen erfolglosen Versuchen grad nicht so unbedingt die Hoffnung direkt fündig zu werden ;-) LG Milka Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 24. Januar 2018 Melden Teilen Geschrieben 24. Januar 2018 Hi, vor 2 Minuten schrieb Milka: Sollte noch jemand über die Ereignis ID einer WLAN-Verbindung stoßen - ich würd mich freuen. Natürlich suche ich auch selbst noch weiter, allerdings habe ich nach vielen erfolglosen Versuchen grad nicht so unbedingt die Hoffnung direkt fündig zu werden ;-) ich habe schon bei Notebooks "Verbindungsmanager" vom Hersteller gesehen, da konnte man verschiedenen Netzwerken Profile zuordnen die AFAIK auch dann Scripts ausführen konnten. Evtl. gibt es sowas auch als gesonderte Software, die dann nicht vom "Hardware-Hersteller" ist. Gruß Jan Zitieren Link zu diesem Kommentar
ente_0815 0 Geschrieben 25. Januar 2018 Melden Teilen Geschrieben 25. Januar 2018 Hallo, event-id 10000 könnte weiterhelfen, auch die Aufgabenplanung von Windows hat als Trigger 'nur ausführen wenn mit dem und dem Netzwerk verbunden' Schau noch 'Popd' an statt zwei mal 'Net use'! LG ente Zitieren Link zu diesem Kommentar
Milka 0 Geschrieben 26. Januar 2018 Autor Melden Teilen Geschrieben 26. Januar 2018 (bearbeitet) Hallo Testeperson, die Idee ist grundsätzlich gut und ich behalte sie als Alternative im Kopf. Allerdings ist zusätzliche Software nicht unbedingt mein Favorit, ich würde erstmal die untere Lösung probieren. ;-) Hallo Ente, ganz lieben Dank, diese Idee ist verdammt gut! Manchmal sieht man vor lauter Süßkram die Schokolade nicht mehr :) Das werde ich so umsetzen und testen! LG Milka bearbeitet 26. Januar 2018 von Milka Zitieren Link zu diesem Kommentar
Milka 0 Geschrieben 30. Januar 2018 Autor Melden Teilen Geschrieben 30. Januar 2018 Hallo nochmal. Sorry, ich muss nun doch nochmal etwas dazu fragen Die Batch läuft soweit, und ich wäre mit der Lösung, per Aufgabenplanung zu starten (bei Benutzeranmeldung und Entsperren der Arbeitsstation) auch zufrieden - bekomme es aber leider nicht ans Laufen. Vermutlich mache ich irgendwo einen blöden Fehler, den ich grad einfach nicht sehe Ich lege eine Aufgabe an Unabhängig von der Benutzeranmeldung ausführen Mit höchsten Priviliegien ausführen Tigger: Entsperren der Arbeitsstation Verzögern für 1 Minute Jeder Benutzer Anmelden Jeder Benuter Verzögern für 1 Minute Aktionen Programm starten C:\Windows\SysWOW64\cmd.exe Argument hinzufügen (mehrere Varianten getestet): /c C:\Users\USERNAME\Desktop\BATCHNAME.cmd /c "C:\Users\USERNAME\Desktop\BATCHNAME.cmd" /c start "C:\Users\USERNAME\Desktop\BATCHNAME.cmd" Bedingungen Nur starten, wenn folgende Netzwerkverbindung verfügbar ist (auch ohne Bedingung getestet) WLAN Wenn ich die Aufgabe nun manuell starte läuft diese, die Batch wird aber nicht gestartet, im Verlauf sehe ich aber nur "Aufgabe erfolgreich abgeschlossen - Ereignis102" Den Inhalt der Batchdatei habe ich seit meinem letzten Post nicht mehr verändert - wenn ich diese ohne Aufgabenplanung starte läuft diese auch korrekt. LG Milka Zitieren Link zu diesem Kommentar
NorbertFe 2.061 Geschrieben 30. Januar 2018 Melden Teilen Geschrieben 30. Januar 2018 Unter welchem Account läuft denn dieser task? Netzlaufwerke benötigen einen nutzerkontext afair. Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 30. Januar 2018 Melden Teilen Geschrieben 30. Januar 2018 vor einer Stunde schrieb Milka: Unabhängig von der Benutzeranmeldung ausführen Mit höchsten Priviliegien ausführen Tigger: Entsperren der Arbeitsstation Verzögern für 1 Minute Jeder Benutzer Anmelden Jeder Benuter Verzögern für 1 Minute Aktionen Programm starten C:\Windows\SysWOW64\cmd.exe Argument hinzufügen (mehrere Varianten getestet): /c C:\Users\USERNAME\Desktop\BATCHNAME.cmd /c "C:\Users\USERNAME\Desktop\BATCHNAME.cmd" /c start "C:\Users\USERNAME\Desktop\BATCHNAME.cmd" Bedingungen Nur starten, wenn folgende Netzwerkverbindung verfügbar ist (auch ohne Bedingung getestet) WLAN Wenn ich die Aufgabe nun manuell starte läuft diese, die Batch wird aber nicht gestartet, im Verlauf sehe ich aber nur "Aufgabe erfolgreich abgeschlossen - Ereignis102" Die ersten beiden Teile der Aufgabe würde ich wegnehmen und als normaler User laufen lassen. Wird denn das Argument USERNAME korrekt aufgelöst? Was steht im Eventlog bei den Aufgaben zu dem Thema? Lass das /c doch einfach mal weg und schau ob die Batch gestartet wird. Zitieren Link zu diesem Kommentar
Milka 0 Geschrieben 30. Januar 2018 Autor Melden Teilen Geschrieben 30. Januar 2018 vor 5 Minuten schrieb Sunny61: Die ersten beiden Teile der Aufgabe würde ich wegnehmen und als normaler User laufen lassen. Wird denn das Argument USERNAME korrekt aufgelöst? Was steht im Eventlog bei den Aufgaben zu dem Thema? Lass das /c doch einfach mal weg und schau ob die Batch gestartet wird. Entschuldigung, ich habe natürlich meinen Usernamen genommen - den hier nur durch den Capslocktext ersetzt. Das hätte ich dazu schreiben können. Ich habe deine Ideen soweit umgesetzt, sprich meinen Benutzer, keine erhöhten Rechte, und die /c ausgelassen. Immerhin wird nun sichtbar die CMD gestartet, aber die Batch nicht. Mit den anderen Schreibweisen als Argument startet wieder nichts (sichtbar). Weiterhin: Verlauf sagt alles wird korrekt ausgeführt. vor 51 Minuten schrieb NorbertFe: Unter welchem Account läuft denn dieser task? Netzlaufwerke benötigen einen nutzerkontext afair. Ich habe als Administrator getestet, auch mit den Rechten des angemeldeten Benutzers. LG Milka Zitieren Link zu diesem Kommentar
Milka 0 Geschrieben 30. Januar 2018 Autor Melden Teilen Geschrieben 30. Januar 2018 Hallo nochmal. Update: Es läuft. Ich denke durch das viele Testen und experimentieren mit den Rechten hatte ich wohl alles verhackt ;-) Danke Sunny, dein Tipp war wegweisend; folgendes funktioniert nun: (In Capslock geschriebene Pfadteile sind Platzhalter für den eigentlichen Usernamen/ Dateinamen) Allgemein nur ausführen wenn Benutzer angemeldet ist der aktuelle Benutzer (kein Admin, keine höheren Privilegien; der Benutzer ist ohne Administrator) Trigger Beim Aufheben der Arbeitsstationsperre Verzögern für 1 Minute Beim Anmelden Verzögerung 1 Minute Aktionen programm starten C:\Windows\SysWOW64\cmd.exe Argumente: /c C:\Users\USERNAME\Desktop\BATCHNAME.cmd Ganz lieben Dank! Grüße Milka Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 30. Januar 2018 Melden Teilen Geschrieben 30. Januar 2018 Freut mich für Dich und Danke für die Rückmeldung. ;) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.