Terugkerende klusjes handig geautomatiseerd

Met de Taakplanner en VBScript kan je allerhande terugkerende klusjes automatiseren. Van het schoonmaken van de harde schijf tot en met het synchroniseren van gegevens, alles is mogelijk. Nou ja, bijna alles.

Er zijn twee voorwaarden: Taakplanner (Task Scheduler) moet draaien en VBScript (de zogeheten Windows Scripting Host) moet kunnen worden aangesproken. Ga naar Start, Uitvoeren, SERVICES.MSC, Enter en controleer of de Task Scheduler actief is. Zo niet, dan instellen op Automatisch. De volgende stap is een controle van de registersleutel HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows Script Host\Settings, want daar moet de DWORD-parameter Enabled op 1 staan of ontbreken. Zo niet, dan moet je even de juiste correctie uitvoeren. De register-editor kan je als volgt starten: Start, Uitvoeren, REGEDIT, Enter.


Controleer eerst of de Taakplanner actief is…


…en of VBScript niet is uitgeschakeld.

VBScript-editor
VBScript is een programmeertaal die je binnen de Microsoft-omgeving op verschillende plekken kunt tegenkomen. Ook Office en de webserver van Microsoft kunnen overweg met VBScript. Net als Windows zélf. Een (echt) VBScript-bestand is voorzien van de extensie .vbs, want op die manier kan Windows herkennen dat het gaat om een programmabestand dat moet worden doorgeseind naar de Windows Scripting Host die dat vbs-bestand inleest, interpreteert en uitvoert. Dat laatste uiteraard alleen als je geen programmeerfouten hebt gemaakt.

Als je VBScript gaat schrijven moet je kunnen beschikken over een handige editor. In principe heb je aan het Kladblok van Windows genoeg, maar een tool als VbsEdit (www.vbsedit.com) heeft een groot aantal extra’s aan boord die het coderen van VBScript sterk veraangenamen en vereenvoudigen!

We gaan van start met de Schijfopruiming van Windows. Normaal gesproken ga je naar de Systeemwerkset van de Bureau-accessoires om de Schijfopruiming aan te spreken. Het kan echter ook anders, want CLEANMGR is namelijk de programmanaam van de Schijfopruiming. Ga naar Start, Uitvoeren, CMD en geef dan de opdracht CLEANMGR /? Enter. Je krijgt nu de opdrachtregelparameters te zien van de Schijfopruiming. Je staat al in het Dos-opdrachtvenster, dus probeer het volgende commando maar eens: CLEANMGR /sagerun:1 Enter. Je zult zien dat er dan nog weinig wordt opgeruimd, maar dat is aan te passen met behulp van deze opdracht: CLEANMGR /sageset:1 Enter. Vervolgens kan je zoveel vinkjes neerzetten als je nodig hebt, wat daarna door de eerder getoonde opdracht CLEANMGR /sagerun:1 Enter wordt opgepakt.


Veel Windows-tools kunnen ook vanaf de Dos-opdrachtregel worden gestart.


Instellen van welke opties van de Schijfopruiming we gebruik zullen maken.

 

 

We gaan dat meenemen naar VBSript en dat doen we met behulp van de VBSript-editor VbsEdit. Het script dat uiteindelijk ontstaat is getiteld Schoonmaken.vbs en ziet er als volgt uit:

Option Explicit

-


Aan het werk met VbsEdit. 

Toegegeven, dat lijkt heel wat, maar het valt uiteindelijk wel mee. De pure essentie van de bovenstaande VBScript-listing is de opdracht WshShl.Run "C:\windows\System32\cleanmgr /sagerun:1", 2, True die wordt omringd door de nodige overhead. Het is dus de Run-opdracht van de Windows Scripting Host die het eerder getoonde opdrachtregelcommando aan het werk zet. Die Run-opdracht bevat, naast het opdrachtregel-commando, nog twee extra parameters, in dit geval: 2 en True. Het getal 2 slaat op de wijze waarop het venster van de Schijfopruiming zich zal tonen en de True geeft aan dat de Run-opdracht pas is afgelopen als het opdrachtregelcommando (de Schijfopruiming) is afgerond.

Dat laatste, het wachten totdat het opdrachtregelcommando is afgerond, gebruiken we om de begintijd en de eindtijd van de VBScript-listing weg te kunnen schrijven in het logbestand C:\TAAKLOG.txt. Immers, alleen dán kan je achteraf nalezen hoe lang iets heeft geduurd. In de VBScript-listing werken we met drie subroutines: StartSchoonmaken(), Schoonmaken() en StopSchoonmaken(). Eerst noteren we wanneer de VBScript-listing van start is gegaan. Daarna laten we de Schijfopruiming runnen. Tot slot noteren we wanneer de VBScript-listing is gestopt. Dat laatste dient natuurlijk ter controle om zeker te weten dat het geheel netjes is uitgevoerd.

We komen nog even terug op dat getal 2 bij de Run-opdracht. Er zijn namelijk wat alternatieven die je kunt gebruiken. Zo kan je het werkvenster minimaliseren maar ook maximaliseren. De mogelijkheden even op een rijtje:

• 0 Sluit het venster en opent een nieuw venster.
• 1 Activeert en toont het normale venster.
• 2 Activeert en toont een geminimaliseerd venster.
• 3 Activeert en toont een gemaximaliseerd venster.
• 4 Laat het venster op de meest recente positie en in de meest recente grootte zien.
• 5 Laat het venster op de huidige positie en in huidige grootte zien.
• 6 Minimaliseert het gespecificeerde vensters en activeert het volgende bovenste venster.
• 7 Laat het venster geminimaliseerd zijn. Het actieve venster blijft actief.
• 8 Laat het venster in de huidige staat zien. Het actieve venster blijft actief.
• 9 Activeert en toont het venster.
• 10 De wijze van tonen is afhankelijk van het programma dat de Run-opdracht heeft gegeven.

Met bovenstaande parameters kan je gewoon even experimenteren en dat doe je door het aldus gecreëerde VBScript-bestand te laten runnen vanaf – bijvoorbeeld – het Bureaublad. En uiteraard check je ook het bestand C:\TAAKLOG.txt, want daarin is na te lezen wat er allemaal intussen is gebeurd. Dat laatste wordt – in dit geval – geregeld door de subroutines StartSchoonmaken() en StopSchoonmaken(), maar dat wist je al.


Het script Schoonmaken.vbs wordt ter test geactiveerd.


In het txt-bestand C:\Taaklog.txt wordt genoteerd of een taak is gestopt en gestart.

Op het bovenstaande thema kan je enorm veel variaties maken. Neem bijvoorbeeld het commando DEFRAG waarmee je de Defragmentatie van Windows kunt aansturen. Jazeker, ook de Defragmentatie is met behulp van een opdrachtregelcommando aan te sturen. Veel hoef je daarvoor niet aan te passen, kijk maar:

Option Explicit

-

En over variaties gesproken: ook bekende niet-Microsoft-applicaties zoals FileZilla, GoodSync en CCleaner laten zich door middel van een opdrachtregelcommando aansturen. Als de genoemde applicaties zijn geïnstalleerd op je pc, kan je ze aanspreken zoals de Schijfopruiming en de Defragmentatie. De VBScript-listing waarmee je inmiddels bekend bent, hoeft daarvoor slechts een klein beetje te worden gemodificeerd! Zoals gezegd, enorm veel variaties zijn mogelijk.


Ook de Defragmentatie van Windows is vanaf de opdrachtregel aan te sturen. 


Met deze opdrachtregelparameters kan de bekende ftp-client FileZilla overweg.


Met behulp van GoodSync kan je gemakkelijk backuppen en synchroniseren.


Ook CCleaner kan via VBScript worden aangestuurd.

We hebben de Taakplanner nodig om (onder andere) VBScript-listings op gezette tijden automatisch tot uitvoering te brengen. De Taakplanner vind je bij de Systeemwerkset van de Bureau-accessoires en als je het programma opent, zal je zeer waarschijnlijk merken dat de pc reeds is voorzien van een groot aantal automatische taken die veelal betrekking hebben op het onderhoud van het besturingssysteem en de nodige applicaties. Voor ons is dat op dit moment niet interessant. Wij doen het volgende:

Stap 1 
Klik op Basistaak maken om een nieuwe taak toe te voegen aan de Taakplanner. Die taak zullen we Schoonmaken noemen, omdat zo dadelijk het VBScript Schoonmaken.vbs zal worden ingesteld.


Hier wordt de verwijzing naar het VBScript Schoonmaken.vbs verzorgd.

Stap 2 
Vervolgens moet je de trigger instellen, oftewel het moment waarop de nieuwe taak moet worden gestart. Dat kan dagelijks, wekelijks, enzovoort. De keuze is geheel aan jou. Immers, jij weet hoe vaak een taak moet worden uitgevoerd…


Zoals je ziet, geeft de Taakplanner groen licht!

Stap 3 
Afhankelijk van de triggerkeuze moeten er nog wat extra tijd- en datumparameters worden ingevuld. In het geval van wekelijks is dat het uur van de dag en de dag van de week. Dat spreekt voor zich!

Stap 4 
De hamvraag: wat moet er eigenlijk worden gedaan? Een programma starten, een e-mailbericht verzenden of een bericht weergeven? In dit geval zullen we een programma starten.

Stap 5 
En het programma dat moet worden gestart, is de eerder samengestelde VBScript-listing, oftewel het bestand Schoonmaken.vbs.

En zoals eerder gezegd: er zijn variaties op het thema. Je kunt verschillende VBScripts maken die verschillende dingen doen. Bijvoorbeeld het schoonmaken van de harde schijf, maar ook het via ftp kopiëren van gegevens of het synchroniseren van een backup. En maak dan zeker gebruikt van het foefje met het logbestand, want op die manier kan je altijd nalezen of een taak netjes is afgerond.

 

Tot slot nog een handige functie van de Taakplanner. Binnen de Taakplanner zal je de door jou aangemaakte taken tegenkomen in de totaallijst met taken. Je kunt dan van de rechtermuisknop gebruikmaken om een proefrun te laten uitvoeren. Als die proefrun netjes wordt afgerond, kan je er zo goed als zeker van zijn dat de taak in de toekomst ook correct zal worden uitgevoerd!

Deel dit artikel
Voeg toe aan favorieten