logo powershell

Scheduled tasks maken met Powershell

Het laten draaien van een script dat automatisch je exchange logging opschoont scheelt schuifruimte. Je wil dat zoiets dagelijks of wekelijks loopt. Ook andere standaard scripts die je op al je beheerde omgevingen zet wil je makkelijk kunnen schedulen.

In het onderstaande voorbeeld maak ik een scheduled task aan. Hierbij zit 1 handmatige actie en dat is achteraf aangeven dat de taak ook mag draaien als je niet ingelogd bent, en het bijkomstige invoeren van credentials.

# Maak de taak de taak
$taskAction = New-ScheduledTaskAction `
    -Execute 'powershell.exe' `
    -Argument '-File C:\beheer\scripts\exchange-logging-cleanup.ps1'
$taskAction

# Genereer de trigger gebruik weekly daily am en pm
$taskTrigger = New-ScheduledTaskTrigger -Daily -At 3AM
$tasktrigger

# Registreer de taak vul hiervoor een taskname en description in
$taskName = "Exchange Log Cleanup"
$description = "opschonen iis en exchange logging"
$settings = New-ScheduledTaskSettingsSet -MultipleInstances Parallel

Register-ScheduledTask `
    -TaskName $taskName `
    -Action $taskAction `
    -Trigger $taskTrigger `
    -Description $description 
	
# open nu taskscheduler om de security options aan te passen
# ja dit is ook te automatiseren, maar dan dien je je wachtwoord 
# eerst versleuteld in een tekst bestand op te slaan