lkaderavek
Goto Top

VBS in Aufgabenplanung laufen lassen

Ein Skript täglich automatisch unabhängig von der Annmeldung laufen lassen.
Windows Small Business Server 2011 Aufgabenplanung.

Hallo,

ich habe jetzt schon mehrere Threads durch, aber keiner hilft.

Ich habe ein VBS, dass täglich die ältesten Dateien löscht.

Dieses Script soll automatisch laufen.

Der Job ist folgendermaßen konfiguriert.

Aktion: Programm starten
Programm/Skript: C:\Windows\System32\cscript.exe
Argumente hinzufügen (optional): Backup-Cleanup.vbs
Starten in (optional): C:\SKRIPTS\

Wenn ich das Skript manuell starte funktioniert es wunderbar.

Im Task-Planer wird der Status nach Ausführung (Auto und Manuell) als 0x0 zurückgegeben.

Das würde ja bedeuten, dass das Skript ohne Fehler durchgelaufen ist.

Tut es aber nicht...

Was mache ich falsch.

Danke

Ciao

Lukas

Content-Key: 187673

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

Printed on: April 24, 2024 at 17:04 o'clock

Member: DerWoWusste
DerWoWusste Jul 09, 2012 at 12:06:22 (UTC)
Goto Top
Moin.

Teste bitte, ob Du mit den selben Einstellungen etwas anderes ausführen lassen kannst - nimm Beispielsweise das Kommando cmd /c md c:\test
Member: Karo
Karo Jul 09, 2012 at 12:08:17 (UTC)
Goto Top
Moin,

dazu wäre der Code des VBS u.a. interessant. Wenn dort z.B. Verweise auf CU sind, der SchedTask allerdings im SYSTEM Context läuft, wird das nichts da der CU NTSYSTEM wäre face-wink

Ansonsten im SchedTask den Schalter 'mit höchsten Privilegien ausführen' anhacken.

Gruß

Karo
Member: LKaderavek
LKaderavek Jul 09, 2012 at 12:12:21 (UTC)
Goto Top
Das kann ich aber nicht in einer vbs laufen lassen und batch files funktionieren ja noch weniger mit dem task planer...
Member: LKaderavek
LKaderavek Jul 09, 2012 at 12:13:22 (UTC)
Goto Top
OPTION EXPLICIT
DIM strExtensionsToDelete,strFolder
DIM objFSO, MaxAge, IncludeSubFolders
strFolder = "B:\CENTRAL-2-DISC\"
includeSubfolders = false
strExtensionsToDelete = "bkf"
maxAge = 2

set objFSO = createobject("Scripting.FileSystemObject")

DeleteFiles strFolder,strExtensionsToDelete, maxAge, includeSubFolders

sub DeleteFiles(byval strDirectory,byval strExtensionsToDelete,byval maxAge,includeSubFolders)
DIM objFolder, objSubFolder, objFile
DIM strExt

set objFolder = objFSO.GetFolder(strDirectory)
for each objFile in objFolder.Files
for each strExt in SPLIT(UCASE(strExtensionsToDelete),",")
if RIGHT(UCASE(objFile.Path),LEN(strExt)+1) = "." & strExt then
IF objFile.DateLastModified < (Now - MaxAge) THEN
objFile.Delete
exit for
END IF
end if
next
next
if includeSubFolders = true then ' Recursive delete
for each objSubFolder in objFolder.SubFolders
DeleteFiles objSubFolder.Path,strExtensionsToDelete,maxAge, includeSubFolders
next
end if
end sub


Es gibt keinen Verweis auf Current User oder SYSTEM
Member: DerWoWusste
DerWoWusste Jul 09, 2012 at 12:33:35 (UTC)
Goto Top
Batchfiles funktionieren - werden aber hier nicht benötigt. Teste bitte so wie beschrieben. Wird der Ordner c:\test angelegt?
Member: LKaderavek
LKaderavek Jul 09, 2012 at 12:35:42 (UTC)
Goto Top
Ja den Ordner muss ich aber in irgendeinem Skript anlegen lassen, oder?

Das wird ja nicht klappen, wenn ich den Code einfach so eintippe...
Member: DerWoWusste
DerWoWusste Jul 09, 2012 at 12:40:06 (UTC)
Goto Top
Doch.....................................................!
Member: LKaderavek
LKaderavek Jul 09, 2012 at 12:49:05 (UTC)
Goto Top
AHA...na gut!


Der Ordner Test wurde mit dem Kommando angelegt...
Member: Karo
Karo Jul 09, 2012 at 12:52:47 (UTC)
Goto Top
In welchem Context läuft der Task und hat diese User auch Rechte auf die Struktur auf das das Script zugreift?

Karo
Member: DerWoWusste
DerWoWusste Jul 09, 2012 at 12:58:28 (UTC)
Goto Top
Gut.
Dann ändere den Task indem Du eine Batch als Ziel angibst, in der md c:\test1 steht. Andere Parameter wie bei Deiner .vbs-Sache. Klappt's noch?
Member: LKaderavek
LKaderavek Jul 09, 2012 at 13:09:01 (UTC)
Goto Top
Hallo,

ich arbeite mit dem Domain-Admin und der führt den Task auch aus.

Rechte sind vollständig vorhanden.
Member: LKaderavek
LKaderavek Jul 09, 2012 at 13:12:41 (UTC)
Goto Top
Hallo,

also test.bat in C:\SKRIPTS angelegt und md C:\TEST1 als Code...

Aktion: Programm starten
Programm: C:\SKRIPTS\test.bat
keine Argumente und Starten in ist leer...

Funktioniert auch noch!
Member: AndreasHoster
AndreasHoster Jul 09, 2012 at 13:13:12 (UTC)
Goto Top
Grob geraten:
B: ist ein gemapptes Laufwerk?
Ist natürlich im Scheduled Task nicht gemappt.

Ansonsten, zur weiteren zielführenden Fehlersuche:
Mach einen Batch mit:
C:
cd \Skripts
C:\Windows\System32\cscript.exe Backup-Cleanup.vb >C:\temp\Skriptlog.txt 2>&1
Denn dann im Scheduled Task starten lassen.
Dann sieht man die Ausgabe von Cscript.exe in der Textdatei.
Da könnten ja auch eine Fehlermeldung drinstehen.
Member: DerWoWusste
DerWoWusste Jul 09, 2012 at 13:15:29 (UTC)
Goto Top
OK, teste nun Deine VBS mal mit dem Konto "system", Kennwort leer lassen.
Member: LKaderavek
LKaderavek Jul 09, 2012 at 13:16:30 (UTC)
Goto Top
OK...

C:\SKRIPTS\Backup-Cleanup.vbs(17, 2) Laufzeitfehler in Microsoft VBScript: Der Pfad wurde nicht gefunden.

Muss ich jetzt mit UNC-Pfaden arbeiten???

Das Laufwerk B:\ ist aber im Explorer gemapped...
Member: LKaderavek
LKaderavek Jul 09, 2012 at 13:19:27 (UTC)
Goto Top
Also mit SYSTEM läufts auch ewig... mit 0x41301...

Liegt aber wahrscheinlich auch wieder am Pfad
Member: Karo
Karo Jul 09, 2012 at 13:23:54 (UTC)
Goto Top
Ja, Du musst mit UNC arbeiten, wenn Du nicht lokal arbeitest. Der Context im SchedTask ist NICHT der mit dem Du gerade angemeldet bist!

Karo
Member: LKaderavek
LKaderavek Jul 09, 2012 at 13:26:00 (UTC)
Goto Top
Jop...

Mit UNC im VBS läufts...

ENDLICH! - Der User SYSTEM funktioniert auch...

DANKE

Ihr seids echt die Besten.

Ciao

Lukas
Member: Karo
Karo Jul 09, 2012 at 13:34:44 (UTC)
Goto Top
Prima,

den Frage bitte auf gelöst setzen face-smile

Karo
Member: LKaderavek
LKaderavek Jul 09, 2012 at 13:37:18 (UTC)
Goto Top
Nema Problema!

...::: HVALA PUNO :::...