Pianificare attività su Windows
In questa guida vedremo come creare, modificare ed eseguire operazioni automatica di qualsiasi genere usando lo strumento "Utilità di pianificazione". E' possibile utilizzare questo strumento per ogni genere di attività, dai task di manutenzione e pulizia fino a operazioni specifiche per i task di sviluppo.
Requisiti Minimi
- Microsoft Plus! con Windows 95
- Internet Explorer 4.0 con Windows 98
Creazione attività
Vediamo come creare un'attività generica.
- Aprire Start e cercare Utilità di pianificazione
- Nella barra laterale saranno mostrate tutte le cartelle contenenti le attività

- Cliccare con il tasto destro su "Libreria Utilità di pianificazione" e poi su "Nuova Cartella".
- Associare alla cartella un nome di vostra preferenza. Questo passaggio non è obbligatorio ma è fortemente consigliato per tenere separate le attività custom da quelle di sistema/app
- Entrare nella nuova cartella e cliccare su "Crea Attività

- Compilare il primo tab con nome e descrizione
- Selezionare le impostazioni più adeguate in "Opzioni di sicurezza".

- Andare nel secondo tab "Attivazione" e cliccare su nuovo

- Scegliere la pianificazione più adeguata all'attività da svolgere, quando e quante volte dovrà essere eseguita l'attività
- Cliccare su OK e salvare.
- Andare nel tab Azioni e cliccare su Nuova. In questa fase si definirà in cosa consiste l'attività, ad esempio un programma o uno script da eseguire.
- E' possibile specificare ulteriori condizioni per determinare quando deve triggerarsi l'esecuzione dell'attività
- Cliccare su OK e confermare.
- Provare ad eseguire l'attività per verificare il corretto funzionamento.
Esempi
1. Esempio Aggiornamento file Hosts
In questo esempio si mostrerà come impostare un'attività per eseguire uno script PowerShell che si occupa di recuperare l'indirizzo ip della WSL2 e associarlo ad uno specifico hostname.
Creare Script attività
Vogliamo eseguire questo script ogni giorno, all'accesso:
param([string]$Hostname = "localcrowd.cavallo",[bool]$CheckHostnameOnly = $true)
#Requires -RunAsAdministrator
$DesiredIP = (wsl hostname -I | Out-String).replace("`n","").replace("`r","")
$hostsFilePath = "$($Env:WinDir)\system32\Drivers\etc\hosts"
$hostsFile = Get-Content $hostsFilePath
Write-Host "About to add $desiredIP for $Hostname to hosts file" -ForegroundColor Gray
$escapedHostname = [Regex]::Escape($Hostname)
$patternToMatch = If ($CheckHostnameOnly) `{ ".*\s+$escapedHostname.*" }` Else `{ ".*$DesiredIP\s+$escapedHostname.*" }`
If (($hostsFile) -match $patternToMatch) {
Write-Host "Host found, we'll update the hostname with new ip"
($hostsFile) -replace $patternToMatch, ("$DesiredIP".PadRight(20," ") + "$Hostname") | Out-File $hostsFilePath
Write-Host $desiredIP.PadRight(20," ") "$Hostname - replaced" -ForegroundColor DarkYellow
}
Else {
Write-Host $desiredIP.PadRight(20," ") "$Hostname - adding to hosts file... " -ForegroundColor Yellow -NoNewline
Add-Content -Encoding UTF8 $hostsFilePath ("$DesiredIP".PadRight(20, " ") + "$Hostname")
Write-Host " done"
}
Lo script accetta due parametri $Hostname e $CheckHostnameOnly, e popola la variabile $DesiredIP con il risultato del comando wsl hostname -I.
Creare attività in utilità di pianificazione
Per questa attività sarà necessario spuntare la casella "Esegui con Privilegi Elevati", necessario per poter aggiornare il file hosts.

Impostare l'attivazione per un esecuzione giornaliera (o in base alle necessità). In alcuni casi può essere utile aggiungere un ritardo nell'esecuzione dell'attività (consigliato).

Aggiungere un nuova attività che aprirà il programma powershell.exe con il path locale dello script. Nel caso d'esempio sono stati inseriti come argomenti: -NoExit -ExecutionPolicy Bypass D:\Scripts\powershell\updateHosts.ps1. In particolare -ExecutionPolicy Bypass per assicurarsi che lo script venga eseguito correttamente senza problemi di policy e -NoExit per lasciare il terminale aperto a fine esecuzione (può essere utile ai primi giri per controllare eventuali log.