35 lines
1.3 KiB
PowerShell
35 lines
1.3 KiB
PowerShell
param(
|
|
[string]$Binary = "$env:LOCALAPPDATA\devplace-node\devplace-node.exe",
|
|
[switch]$Remove
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
$TaskName = "DevPlaceNode"
|
|
|
|
if ($Remove) {
|
|
Unregister-ScheduledTask -TaskName $TaskName -Confirm:$false
|
|
Write-Host "Removed scheduled task $TaskName"
|
|
exit 0
|
|
}
|
|
|
|
if (-not (Test-Path $Binary)) {
|
|
throw "devplace-node.exe not found at $Binary. Download it there first."
|
|
}
|
|
|
|
$action = New-ScheduledTaskAction -Execute $Binary -Argument "run"
|
|
$trigger = New-ScheduledTaskTrigger -AtLogOn -User $env:USERNAME
|
|
$settings = New-ScheduledTaskSettingsSet `
|
|
-AllowStartIfOnBatteries `
|
|
-DontStopIfGoingOnBatteries `
|
|
-RestartCount 3 `
|
|
-RestartInterval (New-TimeSpan -Minutes 5) `
|
|
-ExecutionTimeLimit ([TimeSpan]::Zero) `
|
|
-StartWhenAvailable
|
|
$principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -LogonType Interactive -RunLevel Limited
|
|
|
|
Register-ScheduledTask -TaskName $TaskName -Action $action -Trigger $trigger -Settings $settings -Principal $principal -Force | Out-Null
|
|
Write-Host "Registered scheduled task $TaskName. It starts at your next logon."
|
|
Write-Host "Store the device secret first: devplace-node.exe login --server https://devplace.net --secret dpn_..."
|
|
Write-Host "Start now: Start-ScheduledTask -TaskName $TaskName"
|
|
Write-Host "Stop and remove: .\windows-install.ps1 -Remove"
|