我已经尝试了100种方法来注册schedulejob来运行一个启动程序的脚本。 没有什么似乎一贯的工作。 我最后一次尝试使用Register-ScheduledTask,这个创建作业,但在系统启动时不会自动启动。 有趣的是,如果我手动运行,它将在未来重启时自行启动。但如果我想自己运行一次就没有必要安排工作!
这就是我在做的事情:
$description = "Scheduling job using Tasks"
$taskPath = "\Microsoft\Windows\PowerShell\ScheduledJobs\"
$argument = "'Register-ScheduledJob -Name "+$scheduledJobName+" -Trigger "+$trigger+" -FilePath "+$TaskParametersPath+" -ScheduledJobOption "+$option+" -Credential "+$cred+" -RunAs32 2>&1'"
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $argument
$taskTriger = New-ScheduledTaskTrigger -AtStartup -RandomDelay 00:00:30
$job = Register-ScheduledTask -Action $action -Trigger $taskTriger -TaskName $scheduledJobName -Description $description -TaskPath $taskPath
我原来的代码是:
$job = Register-ScheduledJob -Name $scheduledJobName -Trigger $trigger -FilePath $TaskParametersPath -ScheduledJobOption $option -Credential $cred -RunAs32 2>&1
我也试过这个:
$job = Register-ScheduledJob -Name $scheduledJobName -Trigger $trigger -FilePath $TaskParametersPath -ScheduledJobOption $option -Credential $cred -Authentication Credssp 2>&1
带触发器和选项:
$trigger = New-JobTrigger -AtStartup -RandomDelay 00:00:30
$option = New-ScheduledJobOption -RunElevated
$ taskParametersPath是一个powershell脚本,它启动另一个PowerShell脚本并为其传递所有必需的参数。 所有这些偶尔会起作用,但有时它无法按照我在这里的错误安排工作。当我登录到机器并尝试注册作业时,它始终有效,但是当我使用azure堆栈模板将其作为VM创建脚本的一部分运行时,它偶尔会失败。 :( 这是我得到的错误:
ERROR : FullyQualifiedErrorId : CantRegisterScheduledJobDefinition,Microsoft.PowerShell.ScheduledJob.RegisterScheduledJobCommand
2018/06/01 23:41:47 : ERROR : Exception:Microsoft.PowerShell.ScheduledJob.ScheduledJobException: An error occurred while registering scheduled job definition VaaSRestartTask to the Windows Task Scheduler. The Task Scheduler error is: The user name or password is incorrect. (Exception from HRESULT: 0x8007052E). ---> System.Runtime.InteropServices.COMException: The user name or password is incorrect. (Exception from HRESULT: 0x8007052E)
at TaskScheduler.ITaskFolder.RegisterTaskDefinition(String Path, ITaskDefinition pDefinition, Int32 flags, Object UserId, Object password, _TASK_LOGON_TYPE LogonType, Object sddl)
at Microsoft.PowerShell.ScheduledJob.ScheduledJobWTS.CreateTask(ScheduledJobDefinition definition)
at Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition.AddToWTS()
at Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition.Register()
--- End of inner exception stack trace ---
at Microsoft.PowerShell.ScheduledJob.ScheduledJobDefinition.Register()
at Microsoft.PowerShell.ScheduledJob.RegisterScheduledJobCommand.ProcessRecord()
2018/06/01 23:41:47 : ERROR : Category:InvalidOperation: (Microsoft.Power...edJobDefinition:ScheduledJobDefinition) [Register-ScheduledJob], ScheduledJobException