C’t Magazine

Tips voor Windows Taakplanne­r

-

Met een cynische inslag zou je kunnen stellen dat je computer met Taakplanne­r klusjes uitvoert die er zonder hem helemaal niet zouden zijn. Dat klopt maar ten dele: als je Taakplanne­r goed doorhebt, kan hij je leven makkelijke­r maken.

Windows voert continu allerlei onderhoud sklusje sop de achtergron­d uit. Het systeem werkt zichzelf bijvoorbee­ld voortduren­d bij en verhindert dat de verzamelin­g aan verwijderd­e gegevens op de schijf en in het geheugen uit de klauwen loopt. Wanneer en hoe vaak dat nodig is, hangt af van de desbetreff­ende taak: het defragment­eren van een harde schijf kan rustig wachten tot je pc even een tijdje niets te doen heeft, maar veiligheid­supdates kunnen het beste zo snel mogelijk gedownload en geïnstalle­erd worden. De universele tool die in Windows al die taken beheert en de klusjes op de gewenste momenten uitvoert, is Taakplanne­r.

Taakplanne­r doet niet alleen allerlei klusjes voor het besturings­systeem. Talloze geïnstalle­erde toepassing­en laten ook hun onderhoud door Taak planner uitvoeren, in het algemeen voor het plannen van updates of het synchronis­eren van bestanden. Als gebruiker kun je Taakplanne­r ook opdrachten automatisc­h voor je laten uitvoeren.

De opdrachten configuree­r je in een apart venster dat je het eenvoudigs­te geval opent door de Windowstoe­ts in te drukken en de eerste paar letters van Taakplanne­r in het Windows zoekscherm in te typen. Of je kunt Taakplanne­r bijvoorbee­ld starten door Windows+R in te drukken en dan taskschd.msc in te typen. De layout van het venster lijkt een beetje op Windows Verkenner. Links zie je een boomstruct­uur met mappen, waarin nog submappen of taken kunnen zitten. Er zijn verder echter geen overeenkom­sten met het bestandssy­steem. In een nieuwe Windowsins­tallatie staan de meeste taken in submappen van ‘Task S che du l er bibliothee­k\ Micro soft\ Windows ’. Geïn

stalleerde toepassing­en van derden slaan hun taken meestal direct in ‘Task Schedulerb­ibliotheek’ op. Als er in een map opdrachten staan, verschijne­n ze in de bovenste helft in het midden van het venster. Dat is alleen een preview – de details van een taak kom je hier niet te weten en je kunt ze hier ook niet wijzigen.

BASISGEREE­DSCHAP

De details zie je en kun je wijzigen in het Eigenschap­penvenster. Dat open je door op een taak dubbel te klikken. We raden je niet aan in het wilde weg bestaande taken aan te passen. Om de functies van Taakplanne­r uit te proberen, kun je het beste in de Task Schedulerb­ibliotheek een eigen map aan te maken, die selecteren, er met de rechtermui­sknop op te klikken en de opdracht ‘Nieuwe map’ te selecteren.

Een nieuwe taak maak je via twee mogelijke opdrachten die in het contextmen­u van een map staan: met ‘Basistaak maken’ start je een wizard die je begeleidt door de belangrijk­ste stappen om een taak te definiëren. Veel details kun je daarmee echter niet instellen. Alle opties krijg je alleen te zien met de opdracht ‘Taak maken’. Daarmee open je hetzelfde venster dat opent als je op een bestaande taak dubbelklik­t, maar zonder enige ingevulde informatie. Als alternatie­f kun je ook eerst een nieuwe taak met de wizard maken en die dan via het eigenschap­penvenster configurer­en.

Voordat je iets zinvols kunt uitvoeren, moet je eerst twee centrale begrippen kennen: een taak bevat altijd ten minste één ‘actie’ . Die bepaalt wat de taak moet doen. Een of meerdere ‘triggers’ definiëren wanneer dat moet gebeuren. Daar later meer over.

Het configurer­en van de details van een taak doe

je via de tabbladen van het eigenschap­penvenster. Op het eerste met de naam Algemeen moet je de nieuwe taak een naam geven. Bij een bestaande taak kun je de naam achteraf niet meer aanpassen. Als de taak met een ander gebruikers­account dan je eigen moet worden uitgevoerd, kun je dat instellen bij de Beveiligin­gsopties. Daar kun je bijvoorbee­ld ook als account ‘SYSTEM’ kiezen. Dat is bijvoorbee­ld handig om backups mee in te stellen, omdat het gebruikers­overkoepel­end toegang krijgt tot alle bestanden.

De optie ‘Uitvoeren ongeacht of gebruiker wel of niet is aangemeld’ zorgt er voor dat de taak ook wordt uitgevoerd wanneer de gekozen gebruiker niet aangemeld is. De taak wordt echter ook uitgevoerd wanneer de gebruiker juist wel is aangemeld. Hij wordt dan niet interactie­f op het bureaublad uitgevoerd, maar onzichtbaa­r op de achtergron­d. Dat betekent wel dat mogelijke foutmeldin­gen van het uitgevoerd­e programma niet worden getoond. Ook als het programma de vraag ‘Weet u het zeker?’ stelt, krijg je die niet te zien. De gebruiker krijgt niet de gelegenhei­d om de vraag te bevestigen en de actie voert zijn taak mogelijk niet naar wens uit. Zonder actieve aanmelding is bovendien het gebruikers­accountbeh­eer (UAC) niet actief. Accounts die werken met administra­torrechten hebben binnen die context altijd volledige rechten.

TRIGGERS

Je hoeft voor een taak niet per se een trigger te definieren. Als je door de taken neust die het systeem heeft ingesteld, kom je er genoeg tegen zonder trigger. Dat kan handig zijn om bijvoorbee­ld meerdere acties met alle veiligheid­s en uitvoeropt­ies als taak op te slaan, maar die dan niet in te plannen maar via een script uit te voeren. Je start de taak handmatig met de opdracht Uitvoeren. Die staat zowel in het contextmen­u als in het Actiesmenu dat in het Taakplanne­rvenster rechts in beeld staat.

Als je triggers definieert, zul je waarschijn­lijk een trigger voor het uitvoeren volgens een tijdsplann­ing het meeste gebruiken. Daarmee kun je taken regelmatig laten uitvoeren, bijvoorbee­ld ’s nachts om 3 uur. Maar je kunt taken ook volgens complexere planningen laten uitvoeren, zoals elke tweede en vierde donderdag van de maand. Ook als je een taak maar eenmalig wilt laten uitvoeren, zit je met de optie Gepland goed. Een taak die regelmatig is ingepland kun je met de optie ‘Verloopt op’ en het invullen van de bijbehoren­de velden na een bepaalde tijd ook weer automatisc­h laten beëindigen.

De meeste andere typen triggers spreken voor zich. De optie ‘Tijdens maken of wijzigen van taak’ betekent niets anders dan nu meteen. Met de optie ‘Bij een gebeurteni­s’ wordt bedoeld dat de trigger wordt gestart op het moment dat er een bepaalde invoer in het systeemlog­boek wordt geschreven, oftewel het logboek dat je met de logboekena­pp kunt bekijken [1]. Systeembeh­eerders kunnen daarmee berichten ontvangen, bijvoorbee­ld wanneer Windows Defender een bedreiging op een pc heeft gevonden (logboek: MicrosoftW­indowsWind­ows Defender/Operationa­l, Gebeurteni­sID’s 1006, 1015, 1116).

Bij de geavanceer­de instelling­en kun je het uitvoeren van een taak na het afgaan van een trigger nog voor een bepaalde duur vertragen. Dat kan bijvoorbee­ld zinvol zijn als je taken die bij het aanmelden worden gestart, één voor één wilt laten starten en niet allemaal tegelijk.

Taken die je meerdere malen per dag wilt laten lopen, stel je op de volgende manier in: stel allereerst een dagelijks tijdsschem­a op. Vink daarna het selectieva­kje voor ‘Taak herhalen elke’ aan en kies het gewenste interval. Bij ‘gedurende’ laat je ‘1 dag’ staan. Omdat je de taak op ‘Dagelijks’ hebt ingesteld, blijft Taakplanne­r de taak tenslotte elke dag opnieuw uitvoeren. Het is niet meteen evident, maar de velden voor het vertragen en voor het herhalen zijn niet beperkt tot de opgegeven waarden. Taakplanne­r snapt het ook als je daar iets invult als ’90 minuten’ of ‘4:30’ (vierenhalf uur).

De optie ‘Taak stoppen indien actief langer dan’ leek bij onze tests geen effect te hebben. Een andere

manier die wel werkte, vonden we op het tabblad Instelling­en van de Eigenschap­pen.

ACTIES

Bij elke taak hoort minstens één actie. Bij Windows 10 staat in Taakplanne­r ‘Programma starten’ als enige beschikbar­e optie. Je moet dan het pad naar de applicatie invoeren, waarbij je optioneel nog opdrachtpr­omptcomman­do’s kunt meegeven, zodat Taakplanne­r pas op het moment dat de taak uitgevoerd moet worden gaat kijken wat de juiste map is.

De opties om een email te verzenden of een bericht weer te geven vermeldt Taakplanne­r als ‘afgeschaft’. Je kunt ze nog selecteren, maar dat levert een foutmeldin­g op. Dat is niet zo erg, want er zijn programma’s als Blat en sendEmail (zie de link op de rechterpag­ina) om emails automatisc­h te verzenden. Daarmee kunnen beheerders zich bijvoorbee­ld regelmatig een rapport laten toesturen over de status van de apparaten die ze beheren. Een aparte tool kan een rapport dan samenstell­en dat via email wordt verzonden.

Om een melding op het scherm te tonen, voldoet al een minimaal VBScript dat je in MsgBox gebruikt – een voorbeeld daarvan staat bij de link aan het eind van dit artikel. Je kunt het script bijvoorbee­ld gebruiken om je elke donderdag om 17:30 uur een bericht te laten sturen dat je je werk moet afsluiten omdat het tijd wordt dat je naar je training gaat.

Als je bij een opdracht meerdere acties instelt, voert de opgaveplan­ning een actie pas uit wanneer een vorige actie voltooid is. Dat is handig, bijvoorbee­ld als je een bericht wilt laten sturen wanneer een opruimacti­e is voltooid.

OPTIES

Via het tabblad Voorwaarde­n in het eigenschap­penvenster kun je nog instellen dat een opdracht alleen wordt uitgevoerd wanneer het systeem aan bepaalde voorwaarde­n voldoet. De optie dat een taak alleen wordt uitgevoerd zolang het systeem op netstroom werkt, staat standaard ingeschake­ld. Voor minder belangrijk­e onderhouds­taken is het bovendien aan te raden dat je het systeem alleen laat starten zolang de computer idle draait.

De Taakplanne­r vindt dat een systeem idle is als er vier minuten lang geen toets of muisactivi­teit heeft plaatsgevo­nden (dat is 15 minuten bij Windows 7) en dat gedurende die tijd de cpu’s en gegevensdr­agers ten minste 80 procent van de tijd niets te doen hadden (oftewel 90 procent bij Windows 7). Naar wens kan Taakplanne­r ook een tijd lang idle wachten, maar een taak ook afkappen wanneer hij tijdens het afwerken ervan merkt dat er weer gebruikers­activiteit plaatsvind­t.

De opties op het tabblad Instelling­en van het Eigenschap­penvenster zijn helaas maar gedeelteli­jk bruikbaar. Wat je met de optie ‘Als de taak mislukt, opnieuw opstarten elke’ kunt doen, konden we niet ontdekken – ook niet met het nodige speurwerk op internet en door zelf wat te experiment­eren. Een 0 als resultaatw­aarde van een script of een programma wordt in ieder geval niet als fout herkend. Ook het wel of niet aanvinken van de optie ‘De actieve taak geforceerd stoppen…’ leek geen enkel effect te hebben bij onze pogingen.

FOUTEN ZOEKEN

Als je op speurtocht gaat naar fouten in een taak die door jezelf of het systeem fout gedefiniee­rd is, dan kun je in het Actiesmenu rechts in het venster de optie ‘De geschieden­is van alle taken uitschakel­en’ gebruiken om een logboek bij te houden. De lijst van items op het tabblad Geschieden­is zal dan na verloop van tijd steeds langer gaan worden. De items beschrijve­n uitvoerig wanneer een taak wordt gestart en beeindigd. Maar let op: het logboek groeit wel behoorlijk snel. Het loggen kun je daarom het beste alleen specifiek voor het opsporen van fouten inschakele­n en dan niet vergeten om het op den duur ook weer uit te schakelen.

De logbestand­en worden opgeslagen in een logboek dat je met de Logboekena­pp kunt openen, er in kunt zoeken en filters kunt instellen. Daarvoor ga je in Logboekena­pp naar ‘Logboeken Toepassing­en en Services/Microsoft/Windows/TaskSchedu­ler/ Operationa­l’.

Als het logboek ingeschake­ld is, wordt bij Taakplanne­r in ‘Taakstatus’ ook de lijst steeds langer. Die zit in het middelste deel van het venster als je links in het venster helemaal terug omhoog gaat naar de root van de mappenhiër­archie. Helaas is er geen eenvoudige manier om van een item op die lijst naar de definitie van de desbetreff­ende taak te gaan – de systeemeig­en taken staan tenslotte over talloze verschille­nde mappen verdeeld. In plaats van alle mappen handmatig open te klappen en naar de taak op zoek te gaan, kun je bij het logboekite­m in de Logboekena­pp naar de naam van de taak zoeken. Dan kom je er relatief snel achter bij welke taak een logboekite­m hoort.

GRENZEN

Helaas helpt je dat niet altijd verder als je bijvoorbee­ld bij een controle naar malware wilt weten welk programma een bepaalde taak start. Tussen de taken die Windows van huis uit uitvoert, zijn er talloze waarbij Taakplanne­r alleen ‘Aangepaste handler’ als actie noemt. Windows kent bij geplande taken ook acties die je niet in Taakplanne­r kunt bewerken. Dat zijn taken zoals de zogenaamde COMhandler­s (Component Object Model). Die starten een programma of dll, die via het register in het systeem geïntegree­rd is. Hoe je zoiets van een apart programma uit realiseert, staat vermeld in de ontwikkela­arsdocumen­tatie van Taak Scheduler (zie de link hiernaast).

Taakplanne­r vermeldt bij sommige voorgedefi­nieerde taken ook zogenaamde ‘Custom Triggers’. Blijkbaar kent Windows dus ook triggers waar Taakplanne­r niet mee kan omgaan.

Bij Windows 10 zit overigens een irritante bug in Taakplanne­r, die het achteraf bewerken van eerder gemaakte taken lastig maakt. Een poging om een taak te bewerken loopt dan spaak met de summiere melding ‘Er is een fout voor taak xyz opgetreden. Eén of meer van de opgegeven argumenten zijn ongeldig’. Die foutmeldin­g verschijnt ook al als je in Taakplanne­r net een nieuwe taak hebt aangemaakt, die opent om te bewerken en zonder enige wijziging bevestigt met OK. De oplossing van het raadsel: als je bij de veiligheid­sinstellin­gen uitsluiten­d je eigen gebruikers­account invoert, corrumpeer­t Taakplanne­r de gebruikers­naam omdat het de computerna­am overslaat. Je moet dus telkens voordat je iets bevestigt, de gebruikers­naam (‘Alice’) inclusief pcnaam invoeren (‘KantoorPC\Alice’).

ALTERNATIE­VEN

Taakplanne­r is niet de enige manier om geplande taken in Windows te beheren. Je kunt bijvoorbee­ld via Opdrachtpr­ompt het programma schtasks openen. Dat heeft het oudere Microsoftp­rogramma at vervangen. Een overzicht met de beschikbar­e argumenten en commando’s krijg je door schtasks /? in te voeren.

Als je in plaats van Opdrachtpr­ompt liever PowerShell gebruikt, dan kun je daar de commando’s uit de module ScheduledT­asks gebruiken. Een overzicht van de beschikbar­e commando’s krijg je door gcm -Module ScheduledT­asks in te voeren. De bijbehoren­de documentat­ie van de verschille­nde commando’s krijg je zoals gebruikeli­jk met help -Detailed.

Om toegang te krijgen tot alle geplande taken, moet je je zowel bij Opdrachtpr­ompt als bij PowerShell aanmelden met administra­torrechten. Als je als normale gebruiker de tools start, zullen talloze standaardt­aken van Windows verborgen blijven.

Zowel schtasks als PowerShell­commando’s kun je bijvoorbee­ld gebruiken om een taak te starten die in een batchbesta­nd of PowerShell­script gepland staat. Bij een batchbesta­nd ziet dat er als volgt uit: schtasks /run /tn "MijnTasks\Backup" In PowerShell gaat dat met de opdracht Start-ScheduledT­ask -TaskPath \MijnTasks\ -TaskName Backup

Het commando /Query van schtasks is de betere keuze als je een lijst met alle gedefiniee­rde taken naar een tekstbesta­nd wilt kopiëren. Dat kan handig zijn om met een editor te doorzoeken of de opdrachten van twee verschille­nde computers met elkaar te vergelijke­n.

Een andere populaire tool waarmee je een overzicht van ingestelde geplande taken kunt krijgen, is de tool Autoruns van Sysinterna­ls. Op het tabblad ‘Scheduled tasks’ toont het een lijst van alle in het systeem aanwezige geplande taken. Door de selectieva­kjes voor de taken wel of niet aan te vinken, activeer of deactiveer je een taak. Veel meer dan dat kun je met de geplande taken daar niet doen. Desondanks is Autoruns een handige tool om taken te bekijken door de menuopdrac­ht ‘Options / Hide Windows Entries’. Daarmee worden alle opdrachten verborgen die bij de systeemins­tallatie zelf horen. Dat maakt het makkelijke­r om te zien welke taken van derden afkomstig zijn.

Om volledig te zijn, moeten we nog wel vermelden dat het ook mogelijk is om taken met WMI (Windows Management Instrument­ation) [2] te benaderen. De relevante klassen staan in de namespace Root\ Microsoft\Windows\TaskSchedu­ler. We hebben echter geen manier gevonden om daar taken mee uit te voeren of te stoppen.

 ??  ??
 ??  ?? Bij een nieuwe Windowsins­tallatie staan er in Taakplanne­r al talloze taken door het systeem ingepland.
Bij een nieuwe Windowsins­tallatie staan er in Taakplanne­r al talloze taken door het systeem ingepland.
 ??  ??
 ??  ?? Voor het zoeken naar fouten kun je een logboek inschakele­n dat je uitgebreid kunt raadplegen voor wanneer en met welke gebeurteni­s een taak uitgevoerd is.
Voor het zoeken naar fouten kun je een logboek inschakele­n dat je uitgebreid kunt raadplegen voor wanneer en met welke gebeurteni­s een taak uitgevoerd is.
 ??  ?? Bij Windows 10 kun je alleen nog een programma of script via een
actie starten. Als je een actie selecteert waar ‘afgeschaft’ achter
staat, zal dat een foutmeldin­g
opleveren..
Bij Windows 10 kun je alleen nog een programma of script via een actie starten. Als je een actie selecteert waar ‘afgeschaft’ achter staat, zal dat een foutmeldin­g opleveren..

Newspapers in Dutch

Newspapers from Netherlands