Wiki di Michele

Attività pianificate

GuidaUltima modifica: 24/10/2026 Verificata il 24/10/2026

I cmdlet del modulo ScheduledTasks sostituiscono schtasks con una sintassi ad oggetti.

Elencare

Get-ScheduledTask
Get-ScheduledTask -TaskName "Backup"
Get-ScheduledTask | Where-Object State -eq Ready
Get-ScheduledTask -TaskPath "\Microsoft\Windows\*"
Get-ScheduledTaskInfo -TaskName "Backup"

Get-ScheduledTaskInfo mostra l'ultima esecuzione, il risultato (LastTaskResult, 0 = successo) e la prossima esecuzione.

Creare un'attività

Si compone di azione, trigger, impostazioni e principale.

$azione  = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Script\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 02:00
$princ   = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType ServiceAccount -RunLevel Highest
$impost  = New-ScheduledTaskSettingsSet -StartWhenAvailable -RestartCount 3 -RestartInterval (New-TimeSpan -Minutes 5)

Register-ScheduledTask -TaskName "Backup" -Action $azione -Trigger $trigger -Principal $princ -Settings $impost

Tipi di trigger

New-ScheduledTaskTrigger -Once -At "2026-11-01 08:00"
New-ScheduledTaskTrigger -Daily -At 03:00
New-ScheduledTaskTrigger -Daily -At 03:00 -DaysInterval 2
New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday, Friday -At 08:30
New-ScheduledTaskTrigger -AtStartup
New-ScheduledTaskTrigger -AtLogOn
New-ScheduledTaskTrigger -Once -At 00:00 -RepetitionInterval (New-TimeSpan -Minutes 15) -RepetitionDuration (New-TimeSpan -Days 1)

L'ultimo esempio ripete l'attività ogni 15 minuti per un giorno.

In PowerShell 5.1 la durata di ripetizione "indefinita" si ottiene con -RepetitionDuration ([TimeSpan]::MaxValue); in PowerShell 7 si omette il parametro.

Eseguire, fermare, abilitare

Start-ScheduledTask -TaskName "Backup"
Stop-ScheduledTask -TaskName "Backup"
Disable-ScheduledTask -TaskName "Backup"
Enable-ScheduledTask -TaskName "Backup"

Modificare ed eliminare

$nuovoTrigger = New-ScheduledTaskTrigger -Daily -At 04:00
Set-ScheduledTask -TaskName "Backup" -Trigger $nuovoTrigger
Unregister-ScheduledTask -TaskName "Backup" -Confirm:$false

Esportare e importare

Export-ScheduledTask -TaskName "Backup" | Out-File .\backup.xml
Register-ScheduledTask -TaskName "Backup" -Xml (Get-Content .\backup.xml -Raw)

Account di esecuzione

PrincipaleNote
SYSTEMMassimi privilegi locali, nessun accesso alle unità di rete mappate né alle risorse di rete con credenziali utente
Utente con password-User e -Password in Register-ScheduledTask; funziona anche se l'utente non è connesso
-LogonType InteractiveSolo quando l'utente è connesso
gMSAAccount gestito dal dominio, senza password da conservare
Register-ScheduledTask -TaskName "Script" -Action $azione -Trigger $trigger -User "DOMINIO\svc_task" -Password "..." -RunLevel Highest

Evita di lasciare password in chiaro negli script.

Diagnosi

Get-WinEvent -LogName "Microsoft-Windows-TaskScheduler/Operational" -MaxEvents 20

Codici frequenti: 0x0 successo, 0x1 errore generico dello script, 0x41301 in esecuzione, 0x41303 mai eseguita, 0x2 file non trovato.

Eseguire uno script nascosto

-Argument "-WindowStyle Hidden -NoProfile -File C:\Script\task.ps1"

Tag

comandipowershellwindows

Altre pubblicazioni in questa sezione

Suggerisci una correzione