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"