none
Scheduled Job mit Powershell anlegen unabhängig von Benutzeranmeldung RRS feed

  • Frage

  • Hallo zusammen,

    ich habe das Problem, dass ich über folgendes Code-Beispiel einen Task anlegen möchte:

    $Wann = "17:00"
    $joboption = New-ScheduledJobOption -ContinueIfGoingOnBattery
    $trigger = New-JobTrigger -Daily -At $Wann
    Register-ScheduledJob -Name "Aufgabe1" -Trigger $trigger -FilePath "C:\pfad\skript.ps1"  -ScheduledJobOption $joboption

    Dies lief bis vor einiger Zeit recht reibungslos. Nach einem Windowsupdate konnte der ScheduledJob nicht mehr ausgeführt werden. Auch manuell ließ er sich nicht starten. Das Problem ist folgende Einstellung:


    Weiß jemand wie ist diese Check-box per powershell ansprechen kann?

    Als Alternative habe ich schon einen ScheduledTask angelegt, der durch das SYSTEM ausgeführt wird. Dieser läuft auch und wirft keine Fehlermeldung(powershell-eventlog). Dennoch wird das Skript nicht ausgeführt. Die Befehlszeile im ScheduledTask funktioniert aber sofern ich sie in der Powershell ausführe.

    hoffe jemand kann mir helfen.

    Gruß

    Matze 

    ____________________________________________________________________

    Update:

    Das Skript, welches durch den ScheduledTask und ScheduledJob ausgeführt wird, verwendet keine Netzlaufwerke. Es Startet nur eine Software über übergibt ein paar Befehle.

    • Bearbeitet User457 Montag, 5. März 2018 10:26
    Montag, 5. März 2018 10:02

Alle Antworten

  • Hallo Matze,

    So müsste das gehen:

    $taskPrincipal = New-ScheduledTaskPrincipal -LogonType S4U ...
    
    Register-ScheduledTask -Principal $taskPrincipal ...

    LogonType auf S4U setzen. Siehe: https://msdn.microsoft.com/en-us/library/windows/desktop/aa382075(v=vs.85).aspx

    Gruss,
    Toby


    • Bearbeitet TobyU Montag, 5. März 2018 10:26
    Montag, 5. März 2018 10:25
  • Moin Toby,

    danke für deine Antwort.

    Habe es so ausprobiert:

    $trig = New-ScheduledTaskTrigger -Daily -At 17:00 -DaysInterval 2
    $taskPrincipal = New-ScheduledTaskPrincipal -LogonType S4U -UserId Messnutzer -RunLevel Highest
    $action=New-ScheduledTaskAction -WorkingDirectory $env:TEMP -Execute $env:SystemRoot\system32\powershell.exe -Argument "-file 'C:\Darca Data\Automatisierung\Eltek_Daten_auslesen.ps1'"

    Register-ScheduledTask -Action $action -TaskName "Eltek Test 2" -TaskPath "\Eltek" -Trigger $trig -Principal $taskPrincipal

    leider ohne Erfolg, fehlt etwas?

    Ich müsste dem Task doch sicher noch ein Passwort übergeben oder nicht?

    Gruß

    Matze

    Montag, 5. März 2018 10:58
  • Moin Zusammen,

    habe eine Lösung für mein Problem gefunden. Da ich beim ersten Einrichten immer andere Passwörter haben kann, löse ich es einfach über eine Abfrage des Benutzers (Get-Credentials).

    Danke Toby für deine Hilfe.

    ________________________________________________________

    $PSCredentials = Get-Credential
    $Wann = "17:00"
    $joboption = New-ScheduledJobOption -ContinueIfGoingOnBattery
    $trigger = New-JobTrigger -Daily -At $wann
    Register-ScheduledJob -Name "Task1" -Trigger $trigger -FilePath "C:\pfad\Automatisierung\skript.ps1" -ScheduledJobOption $joboption -Credential $PSCredential

    _________________________________________________________

    Gruß

    Matze

    Montag, 5. März 2018 11:25
  • Hi Matze,

    Freut mich zu hören, dass es geklappt hat.

    Gruss,
    Tobias

    Montag, 5. März 2018 11:31