Programmi automaatkäivitus Windows Serveris: Task Scheduler
Kõige töökindlam viis programmi automaatkäivituseks Windows Serveris on tööülesannete ajastaja (Task Scheduler) päästikuga „At startup”: programm käivitub süsteemi laadimisel ka siis, kui keegi ei ole sisse loginud. Töölauda vajavatele rakendustele sobib Startup-kaust või registriharu Run. Vaatame kõik kolm varianti läbi.
Millist viisi valida
| Viis | Millal käivitub | Kas vajab sisselogimist |
|---|---|---|
| Task Scheduler (At startup) | Süsteemi laadimisel | Ei |
| Task Scheduler (At log on) | Sisselogimisel | Jah |
| Startup-kaust | Kasutaja sisselogimisel | Jah |
| Registriharu Run | Kasutaja sisselogimisel | Jah |
Ööpäev läbi töötavate teenuste ja taustaprotsesside jaoks kasutage Task Scheduleri valikut „At startup”. Kasutajaliidesega rakenduste jaoks sobib automaatkäivitus sisselogimisel.
1. viis. Tööülesannete ajastaja (soovitatav)
Graafilise liidese kaudu
- Avage tööülesannete ajastaja (Task Scheduler) —
taskschd.msc. - Klõpsake paremal Create Task (mitte Basic Task — nii on rohkem seadeid).
- Vahekaardil General andke ülesandele nimi, valige Run whether user is logged on or not ja märkige Run with highest privileges.
- Vahekaardil Triggers → New valige At startup.
- Vahekaardil Actions → New näidake tee programmini (näiteks
C:\apps\myapp.exe). - Klõpsake OK ja sisestage selle konto parool, mille all ülesanne töötab.
PowerShelli kaudu
Sama ülesande saab luua ühe käsuseeriaga:
$action = New-ScheduledTaskAction -Execute "C:\apps\myapp.exe"
$trigger = New-ScheduledTaskTrigger -AtStartup
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName "MyAppAutostart" -Action $action -Trigger $trigger -Settings $settings -RunLevel Highest -User "SYSTEM"
Kontrollime, kas ülesanne on loodud:
Get-ScheduledTask -TaskName "MyAppAutostart"
Käivitame testiks käsitsi:
Start-ScheduledTask -TaskName "MyAppAutostart"
2. viis. Startup-kaust
Programm käivitub konkreetse kasutaja sisselogimisel. Avage automaatkäivituse kaust:
shell:startup
(kõigi kasutajate jaoks — shell:common startup). Pange sinna programmi otsetee. PowerShellis saab otsetee luua programmiliselt:
$startup = [Environment]::GetFolderPath('Startup')
$shell = New-Object -ComObject WScript.Shell
$shortcut = $shell.CreateShortcut("$startup\MyApp.lnk")
$shortcut.TargetPath = "C:\apps\myapp.exe"
$shortcut.Save()
3. viis. Registriharu Run
Väärtus harus Run käivitab programmi kasutaja sisselogimisel:
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name "MyApp" -Value "C:\apps\myapp.exe"
Kõigi kasutajate jaoks kasutage haru HKLM: haru HKCU: asemel.
Korduma kippuvad küsimused
Programm ei käivitu laadimisel — miks?
Kõige sagedamini vajab rakendus interaktiivset töölauda, kuid ülesanne on seadistatud valikuga „Run whether user is logged on or not”. Selliseid graafilisi programme on parem käivitada päästikuga At log on või Startup-kaustast.
Kuidas käivitada programm automaatselt administraatorina?
Lülitage Task Scheduleris sisse Run with highest privileges. Siis käivitub ülesanne kõrgendatud õigustega ilma UAC-i küsimuseta.
Miks on Task Scheduler parem kui Startup-kaust?
Ajastaja oskab käivitada protsesse enne kasutaja sisselogimist, vajalike õigustega, ajakava järgi ja tõrke korral uuesti. Startup-kaust töötab alles pärast süsteemi sisselogimist.
Kuidas programm automaatkäivitusest eemaldada?
Ülesande puhul: Unregister-ScheduledTask -TaskName "MyAppAutostart" -Confirm:$false. Registri puhul: Remove-ItemProperty. Kausta puhul kustutage otsetee kaustast shell:startup.
Vajate serverit, mis hoiab teie teenused ööpäev läbi käigus? Võtke Windows VPS või vaadake VPS-i rendi hinnakirja.