Script de PowerShell para crear una tarea programada diaria que escribe en un archivo de registro en C Temp, ideal para aprender ScheduledTasks en PowerShell.
# Importa el módulo para gestionar las tareas programadas
Import-Module ScheduledTasks
# Define el nombre de la tarea programada
$nomeAttivita = 'EsempioAttivitaPianificata'
# Ruta de la carpeta y del archivo de registro
$cartellaLog = 'C:\Temp'
$fileLog = Join-Path -Path $cartellaLog -ChildPath 'log_attivita.txt'
# Verifica si la carpeta existe, si no, la crea
if (-not (Test-Path -Path $cartellaLog)) {
New-Item -Path $cartellaLog -ItemType Directory | Out-Null
}
# Comprueba si la tarea ya existe para evitar duplicados
$attivitaEsistente = Get-ScheduledTask -TaskName $nomeAttivita -ErrorAction SilentlyContinue
if ($null -ne $attivitaEsistente) {
Write-Host "La tarea '$nomeAttivita' ya existe. No se realizó ninguna acción."
return
}
# Define el disparador: ejecución diaria a las 12:00
$trigger = New-ScheduledTaskTrigger -Daily -At 12:00
# Define la acción: ejecuta PowerShell que añade una línea con fecha y hora en el archivo de registro
$azioneScript = "Add-Content -Path '$fileLog' -Value \"Tarea ejecutada el $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')\""
$azione = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument "-NoProfile -WindowStyle Hidden -Command $azioneScript"
# Registra la tarea programada con el disparador y la acción definidos
Register-ScheduledTask -TaskName $nomeAttivita -Trigger $trigger -Action $azione -Description 'Escribe un registro cada día al mediodía' -User 'SYSTEM'
Write-Host "Tarea programada '$nomeAttivita' creada con éxito."PowerShell versión 5.0 o superior (módulo ScheduledTasks incluido)
Permisos administrativos para crear tareas programadas
CONFIG: Nombre de la tarea: 'EsempioAttivitaPianificata'
CONFIG: Disparador diario a las 12:00 (mediodía)
CONFIG: Acción: ejecutar PowerShell con comando que escribe en C:\Temp\log_attivita.txt
CONFIG: Archivo de registro: C:\Temp\log_attivita.txt (la carpeta debe existir o ser creada)