hepete
Goto Top

Vbs Datei lässt sich nicht über die Aufgabenplanung (geplater Task) starten

Hallo zusammen,

ich habe folgendes Problem:
Ich habe ein kleines vbs-Script geschrieben und auf dem Rechner abgespeichert habe. Wenn ich die vbs-Datei im Explorer doppelklicke wird diese problemlos ausgeführt. Soweit so gut.

Nun möchte ich dieses Script aber über die Aufgabenplanung (geplanter Task) zu bestimmten Zeiten automatisch aufrufen lassen. Die Einrichtung des geplanten Task ist soweit kein Problem. Wenn die im gepl. Task ausgewiesene Uhrzeit erreicht wird, dann startet die Aufgabenplanung auch die *.vbs Datei. Leider wird diese nicht ausgeführt, weil das System in diesem Fall fragt, mit welcher Applikation denn diese Datei ausgeführt werden soll.

Hat jemand eine Idee, wie ich dem System beibringe, mit welcher Applikation eine *.vbs Datei ausgeführt werden soll?
Wie gesagt: Beim Doppelklick aus dem Datei Explorer heraus, kommt die Frage nicht, sondern da wird die Datei direkt ausgeführt.

Auf dem alten Betriebssystem (Windows 7) hat diese Art des Programmaufrufes aus der Aufgabenplanung immer reibungslos funktioniert. Ich nutze aktuell Windows 10 und habe da dann das beschriebene Problem.

Vielen Dank für Eure hoffentlich sachdienlichen Hinweise.

Content-Key: 341867

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

Printed on: April 19, 2024 at 22:04 o'clock

Mitglied: 133417
133417 Jun 28, 2017 updated at 08:53:35 (UTC)
Goto Top
Was macht die VBS? Zufällig Office COM Automation? Wenn ja dann weiß ich warum es nicht läuft.
Siehe Per Batch in Aufgabeplanung XLS in CSV umwandeln

Hat jemand eine Idee, wie ich dem System beibringe, mit welcher Applikation eine *.vbs Datei ausgeführt werden soll?
Das Registry-Mapping für die Dateiendung aus einem funktionsfähigen System wiederherstellen.

Gruß
Member: hepete
hepete Jun 28, 2017 at 08:55:08 (UTC)
Goto Top
Nein,
die vbs Datei gibt einfach nur eine Message Box auf dem Bildschirm aus.

Gruß
Mitglied: 133417
133417 Jun 28, 2017 updated at 08:59:01 (UTC)
Goto Top
Im Task steht aber schon das es mit dem aktuell angemeldeten User ausgeführt werden soll?! Denn sonst würde ja niemals eine MsgBox erscheinen, das ist dir schon klar?!
Und starte das Skript mal über wscript.exe und als Argumente : //NOLOGO "PFAD ZUR VBS"

WScript.exe und Cscript.exe sind die Interpreter die VBS zum laufen bringen, auch wenn du doppelt klickst werkeln die im Hintergrund das Skript ab. WScript ist für GUI Anwendungen und Cscript für commandline Verwendung.
Member: hepete
hepete Jun 28, 2017 at 08:59:05 (UTC)
Goto Top
Was meist Du denn mit der Wiederherstellung des Registry-Mappings aus einem funktionsfähigem System? Das Windows 10 ist ein frisch installiertes System, und wenn man die vbs-Datei aus dem Datei Explorer heraus startet, weiß das System doch, wie die Datei aufgerufen werden soll.
Nur der Aufruf aus der Aufgabenplanung heraus, funktioniert ja nicht.
Member: em-pie
em-pie Jun 28, 2017 at 09:10:04 (UTC)
Goto Top
Moin,

mal so am Rande:
wie hast du den Aufruf im SchedTask angelegt?
EInfach nur
 c:\meinPfad\meine.vbs 

oder
 C:\Windows\System32\cscript.exe c:\meinPfad\meine.vbs 

Letzteres wäre zu bevorzugen, damit Windows eindeutig weiss, mit welchem Programm die vbs zu starten ist.
Alles, was keine exe, bat oder com als Dateiendung hat, wird nicht selbst ausgeführt sondern bedient sich, wie vom Biber erwähnt, registry-Werten, welche die zu startende exe mit der ENdung verknüpft.

Gruß
em-pie
Member: hepete
hepete Jun 28, 2017 updated at 10:00:46 (UTC)
Goto Top
Ich hatte den Aufruf wie in Deinem ersten Beispiel c:\meinPfad\meine.vbs in die Aufgabenplanung geschrieben.

zwischenzeitlich habe ich den wie von BiebersBaum Vorschlag aufgeführten Lösungsansatz (Wscript.exe) und als Parameter dann der Verweis auf meine.vbs getestet. Mit dieser Variante wird das vbs script ausgeführt. Das ist schon mal ein Erfolg. Leider wird die Ausführung (Anzeige auf dem Bildschirm) nicht im Vordergrund, sondern leider nur im Hintergrund angezeigt. Das das Script gelaufen ist erkennt man nur an deinem zusätzlichen (blinkenden) Symbol in der Taskleiste.

Unter Windows 7 wurde die Message Box, die mein vbs erzeugt zumindest immer im Vordergrund angezeigt.

Hat da jemand auch noch einen Ratschlag, um die vbs Ausführung wieder automatisch im Vordergrund dargestellt zu bekommen?
Mitglied: 133417
133417 Jun 28, 2017 updated at 12:05:49 (UTC)
Goto Top
Hat da jemand auch noch einen Ratschlag, um die vbs Ausführung wieder automatisch im Vordergrund dargestellt zu bekommen?
Die sichtbare Ausführung geht nur wenn du im Aufgabenplaner angibst das es nur ausgeführt werden soll wenn jemand angemeldet ist!

screenshot

Denn nur dann haben solche Skripte Zugriff auf die aktuelle GUI-Session und können irgendwas anzeigen! Das war auch unter Windows 7 definitiv nicht anders. Sobald ein Skript unter einem anderem Account läuft läuft es im Kontext dieses Users im Hintergrund in seiner eigenen Session und es hat somit keinen Zugriff auf die GUI des aktuell angemeldeten Users, ganz einfach. Wäre ja noch schöner wenn eine parallele Anmeldung sich unberechtigt auf meinen Desktop schmuggeln würde. Das würde das Sicherheitssystem konterkarieren.
Also immer erst vorher nachdenken bevor man sich sowas ausdenkt. Also Skript so gestalten das keine GUI Aktionen nötig sind, oder Option wie oben aktivieren.
Member: hepete
hepete Jun 29, 2017 at 06:30:32 (UTC)
Goto Top
Die Option "Nur ausführen, wenn der Benutzer angemeldet ist" ist bei mir aktiviert, trotzdem kommt das Fenster nicht in den Vordergrund.
Member: em-pie
em-pie Jun 29, 2017 at 07:00:02 (UTC)
Goto Top
Warum willst du denn eine Messagebox erhalten, also was ist der Sinn dahinter?

versuche das doch mal mit der cscript.exe und baue hinter deine erwartete Messagebox folgendes ein:
WScript.Echo "Press [ENTER] to continue..."  

' Read dummy input. This call will not return until [ENTER] is pressed.  
WScript.StdIn.ReadLine

WScript.Echo "Done."  
(Quelle: stackoverflow)