Taakplanner beheren met schtasks.exe

Overzicht

In dit artikel wordt uitgelegd hoe u de Windows Taakplanner beheert met het standaard aanwezige commandline-hulpprogramma schtasks.exe op Windows Server en Windows-clients.

Alle voorbeelden gaan ervan uit dat u ze vanuit PowerShell uitvoert. Voor regelvoortzetting wordt consequent de backtick (`) gebruikt.


Notatie van variabelen

Variabelenaam Voorbeeldwaarde Beschrijving
<<SERVER_NAME>> WSRV2025 Doelserver
<<ADMIN_USER>> Administrator Uitvoerend account
<<TASK_NAME>> DailyTempCleanup Naam van de taak
<<SCRIPT_PATH>> C:\Maintenance\cleanup_temp.ps1 Uit te voeren script
<<LOG_PATH>> C:\Maintenance\Logs Logmap
<<BACKUP_PATH>> C:\Maintenance\Backups Doelmap voor archivering van eventlogs

Regelvoortzetting in PowerShell en CMD

Alle commando’s in dit artikel zijn bedoeld voor PowerShell.

  • PowerShell: backtick (`)
  • CMD: caret (^)

Voorbeeld (PowerShell):

schtasks.exe /Create `
  /TN "Example" `
  /SC DAILY `
  /ST 02:00 `
  /TR "powershell.exe -File example.ps1"

Step 1: Overzicht van schtasks.exe-subcommando’s

Subcommando Doel
/Create Nieuwe taak aanmaken
/Delete Taak verwijderen
/Query Takenlijst, details en XML-export
/Change Taakinstellingen wijzigen
/Run Taak direct uitvoeren
/End Actieve taak beëindigen
/ShowSid SID van uitvoeringsaccount tonen

Step 2: /Create – basisstructuur en belangrijke opties

Step 2.1 Algemene syntaxis

schtasks.exe /Create `
  /TN "<<TASK_NAME>>" `
  /TR "<<COMMAND>>" `
  /SC schema `
  [overige opties...]

Step 2.2 Veelgebruikte opties

Optie Beschrijving
/SC Schema (DAILY / WEEKLY / MONTHLY / ONLOGON / ONEVENT)
/MO Modificator
/ST HH:mm Starttijd
/D Dag (1–31 of MON/TUE…)
/RU Uitvoerend account
/RP Wachtwoord (* voor interactieve invoer)
/RL HIGHEST Hoogste machtigingen
/F Geforceerd overschrijven

/MO (modificator)
Parameter om de frequentie of positie van de planning fijnmazig te definiëren.

Voorbeelden:

  • Elke 3 uur → /SC HOURLY /MO 3
  • Om de 2 weken → /SC WEEKLY /MO 2
  • Tweede woensdag van de maand → /SC MONTHLY /MO SECOND /D WED
  • Event-trigger → /SC ONEVENT /MO [XPath]

Step 2.3 Lijst van /SC-planningen

/SC Betekenis
DAILY Dagelijks
WEEKLY Wekelijks
MONTHLY Maandelijks
ONCE Eenmalig
ONSTART Bij systeemstart
ONLOGON Bij gebruikersaanmelding
ONIDLE Bij idle-status
ONEVENT Bij eventlog-trigger

Step 2.4 Dagelijkse taak

schtasks.exe /Create `
  /TN "DailyTempCleanup" `
  /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Maintenance\cleanup_temp.ps1 -DaysToKeep 7 -LogPath <<LOG_PATH>>" `
  /SC DAILY `
  /ST 02:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.5 Bij aanmelding (ONLOGON)

schtasks.exe /Create `
  /TN "OnLogonAudit" `
  /SC ONLOGON `
  /TR "powershell.exe -File C:\Scripts\logon_audit.ps1" `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.6 Bij systeemstart (ONSTART)

schtasks.exe /Create `
  /TN "OnStartInit" `
  /SC ONSTART `
  /TR "powershell.exe -File C:\Scripts\startup_init.ps1" `
  /RU "SYSTEM" `
  /RL HIGHEST `
  /F

Step 2.7 Eventlog-trigger (ONEVENT)

schtasks.exe /Create `
  /TN "Event101Handler" `
  /SC ONEVENT `
  /EC System `
  /MO "*[System/EventID=101]" `
  /TR "powershell.exe -File C:\Scripts\event_handler.ps1" `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.8 Elke 3 uur uitvoeren

schtasks.exe /Create `
  /TN "Every3Hours" `
  /TR "powershell.exe -File script.ps1" `
  /SC HOURLY `
  /MO 3 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.9 Elke tweede woensdag van de maand

schtasks.exe /Create `
  /TN "SecondWednesdayTask" `
  /TR "powershell.exe -File task.ps1" `
  /SC MONTHLY `
  /MO SECOND `
  /D WED `
  /ST 03:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.10 Laatste dag van de maand (LASTDAY)

schtasks.exe /Create `
  /TN "LastDayMonthly" `
  /TR "powershell.exe -File script.ps1" `
  /SC MONTHLY `
  /MO LASTDAY `
  /M * `
  /ST 01:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 2.11 Om de 2 weken

schtasks.exe /Create `
  /TN "Every2Weeks" `
  /TR "powershell.exe -File script.ps1" `
  /SC WEEKLY `
  /MO 2 `
  /D MON `
  /ST 05:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Step 3: /Query – lijst en details

Optie Beschrijving
/FO TABLE Tabeluitvoer
/FO LIST Lijstweergave per eigenschap
/V Uitgebreide details (triggers, acties enz.)
/TN "<<TASK_NAME>>" Alleen specifieke taak tonen
schtasks.exe /Query /FO TABLE
schtasks.exe /Query /FO LIST /V
schtasks.exe /Query /TN "<<TASK_NAME>>" /FO LIST /V

Step 4: /Change – instellingen wijzigen

Optie Beschrijving
/TN Doeltaak
/RU Uitvoerend account wijzigen
/RP * Nieuw wachtwoord interactief invoeren
/TR Uitvoercmd vervangen
/ENABLE /DISABLE Taak in- of uitschakelen

Let op: met /Change kunnen /SC, /MO, /D, /M (triggerdefinitie) niet worden gewijzigd.
Als de planning zelf moet veranderen, is het veiliger om via /Delete te verwijderen en vervolgens via /Create opnieuw aan te maken.

Uitvoerend account wijzigen

schtasks.exe /Change `
  /TN "<<TASK_NAME>>" `
  /RU "<<ADMIN_USER>>" `
  /RP *

Uitvoercommando wijzigen

schtasks.exe /Change `
  /TN "<<TASK_NAME>>" `
  /TR "powershell.exe -File <<SCRIPT_PATH>> -LogPath <<LOG_PATH>>"

Taak in- of uitschakelen

schtasks.exe /Change /TN "<<TASK_NAME>>" /ENABLE
schtasks.exe /Change /TN "<<TASK_NAME>>" /DISABLE

Step 5: /Run (direct uitvoeren) en /End (stoppen)

Optie Beschrijving
/Run Taak direct uitvoeren
/I Planningsbeperkingen (start-/einddatum enz.) negeren
/End Actieve taak stoppen
/TN Doeltaak
schtasks.exe /Run /TN "<<TASK_NAME>>"
schtasks.exe /Run /TN "<<TASK_NAME>>" /I

schtasks.exe /End /TN "<<TASK_NAME>>"

Step 6: Taken importeren vanuit XML

XML import

Optie Beschrijving
/XML bestand Taak uit XML-definitie aanmaken
/RU Uitvoerend account overschrijven
/RP * Wachtwoord interactief invoeren
schtasks.exe /Create `
  /TN "<<TASK_NAME>>" `
  /XML "C:\TaskTemplates\<<TASK_NAME>>.xml" `
  /RU "<<ADMIN_USER>>" `
  /RP *

XML export (via Query)

Optie Beschrijving
/XML ONE Taakdefinitie als één XML-document
> bestandsnaam Omleiden naar bestand
schtasks.exe /Query `
  /TN "<<TASK_NAME>>" `
  /XML ONE `
  > C:\TaskTemplates\<<TASK_NAME>>.xml

Step 8: /Delete – taak verwijderen

Optie Beschrijving
/Delete Verwijdermodus
/TN Taaknaam
/F Verwijderen zonder bevestiging
schtasks.exe /Delete /TN "<<TASK_NAME>>" /F

Step 9: /ShowSid – SID van taakaccount tonen

Optie Beschrijving
/ShowSid SID van het uitvoeringsaccount tonen
/TN Doeltaak
schtasks.exe /ShowSid /TN "<<TASK_NAME>>"

Step 10: Taken op een externe server beheren

Optie Beschrijving
/S "<<SERVER_NAME>>" Doelserver (remote)
/U Gebruiker voor remoteverbinding
/P * Wachtwoord voor remotegebruikersaccount (* voor interactieve invoer)
Overige Zelfde taakdefinitie als lokaal
schtasks.exe /Create `
  /S "<<SERVER_NAME>>" `
  /U "<<ADMIN_USER>>" `
  /P * `
  /TN "<<TASK_NAME>>" `
  /TR "powershell.exe -File <<SCRIPT_PATH>>" `
  /SC DAILY `
  /ST 02:00 `
  /RU "<<ADMIN_USER>>" `
  /RL HIGHEST `
  /F

Conclusie

Door schtasks.exe te gebruiken, kan de Windows Taakplanner eenvoudig worden geïntegreerd in build-, beheer- en automatiseringsscenario’s.

  • Met combinaties van /SC en /MO definieert u flexibele schema’s (dagelijks, wekelijks, maandelijks, nth-weekdag, laatste dag).
  • ONLOGON, ONSTART en ONEVENT maken event-gedreven automatisering mogelijk.
  • Via /Query /XML en /Create /XML kunnen taakdefinities worden geëxporteerd en als sjabloon weer worden geïmporteerd.
  • /Change, /Run, /End, /Delete en /ShowSid dekken de dagelijkse beheertaken af.
  • Met /S /U /P rolt u dezelfde definitie eenvoudig uit naar meerdere remote servers.