mirror of
https://github.com/certbot/certbot.git
synced 2026-06-05 06:42:10 -04:00
This PR implements the item "register a scheduled task for certificate renewal" from the list of requirements described in #7365. This PR adds required instructions in the NSIS installer for Certbot to create a task, named "Certbot Renew Task" in the Windows Scheduler. This task is run twice a day, to execute the command certbot renew and keep the certificates up-to-date. Uninstalling Certbot will also remove this scheduled task. * Implementation * Corrections * Update template.nsi * Improve scripts * Add a random delay of 12 hours * Synchronize template against default one in pynsist 2.4 * Clean config of scheduled task * Install only in AllUsers mode * Add comments * Remove the logic of single user install
15 lines
1.1 KiB
PowerShell
15 lines
1.1 KiB
PowerShell
function Get-ScriptDirectory { Split-Path $MyInvocation.ScriptName }
|
|
$down = Join-Path (Get-ScriptDirectory) 'renew-down.ps1'
|
|
& $down
|
|
|
|
$taskName = "Certbot Renew Task"
|
|
|
|
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-NoProfile -WindowStyle Hidden -Command "certbot renew"'
|
|
$delay = New-TimeSpan -Hours 12
|
|
$triggerAM = New-ScheduledTaskTrigger -Daily -At 12am -RandomDelay $delay
|
|
$triggerPM = New-ScheduledTaskTrigger -Daily -At 12pm -RandomDelay $delay
|
|
# NB: For now scheduled task is set up under SYSTEM account because Certbot Installer installs Certbot for all users.
|
|
# If in the future we allow the Installer to install Certbot for one specific user, the scheduled task will need to
|
|
# switch to this user, since Certbot will be available only for him.
|
|
$principal = New-ScheduledTaskPrincipal -UserId SYSTEM -LogonType ServiceAccount -RunLevel Highest
|
|
Register-ScheduledTask -Action $action -Trigger $triggerAM,$triggerPM -TaskName $taskName -Description "Execute twice a day the 'certbot renew' command, to renew managed certificates if needed." -Principal $principal
|