# Define the task name and action
$taskName = "CheckAlive"
$action = New-ScheduledTaskAction -Execute "C:\Windows\beyoung\check_alive.exe"
# Create a trigger to run the task at system startup
$trigger = New-ScheduledTaskTrigger -AtStartup
# Register the scheduled task to run whether the user is logged in or not
Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -RunLevel Highest -User "SYSTEM" -Force
#Disable the task to be stopped at 3 days
$task = Get-ScheduledTask -TaskName $taskName
$task.Settings.ExecutionTimeLimit = "P3D"
$task.Settings.StopIfGoingOnBatteries = $false
$task.Settings.DisallowStartIfOnBatteries = $false
$task.Settings.WakeToRun = $true
$task | Set-ScheduledTask
#Restart this task if it fails
$task = Get-ScheduledTask -TaskName $taskName
$task.Settings.RestartInterval = "PT1M"
$task.Settings.RestartCount = 999
$task | Set-ScheduledTask
#Stop sheduled task
Stop-ScheduledTask -TaskName $taskName
#kill all tasks that matches check_alive.exe
Get-WmiObject Win32_Process -Filter "Name='check_alive.exe'" | ForEach-Object { $_.Terminate() }
# Start the scheduled task
Start-ScheduledTask -TaskName $taskName
#Start-ScheduledTask -TaskName CheckAlive