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.