Tantra 10 Geschrieben 6. Juni 2006 Melden Teilen Geschrieben 6. Juni 2006 Hallo zusammen! Ich habe ein kleines Problem... Ich habe mir ein kleines vbScript zusammengestellt, welches remote tasks erstellt die dann einen Befehl zur angegebenen Zeit ausführt. Jetzt habe ich jedoch das Problem, dass der Task nicht ausgeführt wird, wenn kein Benutzer angemeldet ist. An was könnte das liegen da der Task unter NT ATHORITÄT\SYSTEM läuft und der Haken bei "nur ausführen wenn angemeldet" fehlt. Danke für jede Hilfe :D ! Hier noch der Code falls Ihn jemanden interessiert... Dim objController, objRemote, objFSO Dim objComplist, objLogwrite, strComputer Dim strTime, strCmd '============================================================================== Do until strTime <> "" strTime = CStr (InputBox ("Bitte geben sie im Format <HHMMSS> an, " _ & vbCrLf & _ "wann der Service ausgeführt werden soll. " & vbCrLf & _ vbCrLf & _ "e.g. '123000' startet den Service um 12:30 " & vbCrLf & _ "ist die eingegebene Zeit schon verstrichen, " & vbCrLf & _ "wird der Service am nächsten Tag um diese Zeit ausgeführt.")) If strTime = "" then strMsgBox = CInt (MsgBox ("Möchten Sie das Script verlassen?", _ vbYesNo + vbDefaultButton2, "remote execute script")) End If If strMsgBox = 6 Then WScript.Quit (0) Else WScript.Echo "Sie haben " & strTime & " eingegeben." End If Loop Do until strCmd <> "" strCmd = CStr (InputBox ("Bitte geben Sie den " & vbCrLf & _ "auszuführenden Befehl an.")) If strCmd = "" then strMsgBox = CInt (MsgBox ("Möchten Sie das Script verlassen?", _ vbYesNo + vbDefaultButton2, "remote execute script")) End If If strMsgBox = 6 Then WScript.Quit (0) Else WScript.Echo "Sie haben " & strCmd & " eingegeben." End If Loop Const ForReading = 1 Set objController = CreateObject("WshController") Set objFSO = CreateObject("Scripting.FileSystemObject") 'Lesen der zu verarbeitenden Computer Set objComplist = objFSO.OpenTextFile("computers.txt", ForReading) 'Erstellen des Logfiles Set objLogwrite = objFSO.CreateTextFile("Log.txt", True) Do until objComplist.AtEndOfStream 'Das Script wird verteilt On Error Resume Next strComputer = objComplist.ReadLine objLogwrite.WriteLine strComputer & ": Verarbeitung beginnt... " & Now Set objLocator = CreateObject("WbemScripting.SWbemLocator") Set objService = objLocator.ConnectServer(strComputer, "root\cimv2") 'Set oLastError = CreateObject("WbemScripting.SWbemLastError") If Err <> 0 Then objLogwrite.WriteLine strComputer & ": Fehler! " & Err.Description Exit Do End If Set objNewJob = objService.Get("Win32_ScheduledJob") errJobCreated = objNewJob.Create _ (strCmd, "********" & strTime & ".000000+120", _ , , , , JobID) Select Case errJobCreated Case "0" objLogwrite.WriteLine strComputer & ": Der Task wurde erfolgreich erstellt" Case "1" objLogwrite.WriteLine strComputer & ": Der Task konnte nicht erstellt werden!" Case "2" objLogwrite.WriteLine strComputer & ": Der Benutzer hat nicht genügend Rechte!" Case "8" objLogwrite.WriteLine strComputer & ": Interaktiver Prozess." Case "9" objLogwrite.WriteLine strComputer & ": Das Serviceskript konnte nicht gefunden werden" Case "21" objLogwrite.WriteLine strComputer & ": Falsche Parameter übergeben!" Case "22" objLogwrite.WriteLine strComputer & ": Das Benutzerkonto unter dem der Service läuft, " & vbCrLf & _ "hat nicht genügend Rechte oder ist ungültig!" 'Case Else objLogwrite.WriteLine strComputer & ": Fehler bei der Task erstellung!" End Select objLogwrite.WriteLine strComputer & ": Verarbeitung abgeschlossen! " & Now Loop objComplist.Close objLogwrite.Close WScript.Echo "Script ausgeführt, für Details lesen " & vbCrLf & _ "Sie bitte das Logfile." 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.