将powershell脚本作为计划任务运行
我有两个脚本可以在office 365上执行邮箱移动到云端的操作。脚本有时会失败,而其他脚本则不会,我不知道为什么会失败 失败,但我猜这是因为在执行任务时服务不可用,无论如何,关键是这些脚本作为计划任务运行,必须有一个脚本 在其他任务之前执行,如何检测第一个任务是否失败,如果失败,则重新安排第二个任务 这些任务正在windows 2008 r2上运行powershell v2 cmdlet,因此我正在使用任务计划程序 我想知道是否应该将一些条目保存到文本文件中,以使用不同的任务计划程序,或者使用powershell以以下方式运行每个作业:将powershell脚本作为计划任务运行,powershell,batch-file,scheduled-tasks,office365,Powershell,Batch File,Scheduled Tasks,Office365,我有两个脚本可以在office 365上执行邮箱移动到云端的操作。脚本有时会失败,而其他脚本则不会,我不知道为什么会失败 失败,但我猜这是因为在执行任务时服务不可用,无论如何,关键是这些脚本作为计划任务运行,必须有一个脚本 在其他任务之前执行,如何检测第一个任务是否失败,如果失败,则重新安排第二个任务 这些任务正在windows 2008 r2上运行powershell v2 cmdlet,因此我正在使用任务计划程序 我想知道是否应该将一些条目保存到文本文件中,以使用不同的任务计划程序,或者使用
foreach ($script in $scripts)
{
#check status in a text file
$job = start-job -Filepath c:\myscript.ps1 -AsJob
Wait-Job $job -Timeout 180
}
最好的方法是什么
谢谢,您可以使用来查询/启用或重新安排任务。或者您可以使用调度程序的(任务输出取决于语言)。使用一种或其他方法检查lastTaskResult并重新安排或不重新安排其他任务
示例:
使用COM对象获取根文件夹的所有任务
icm -AsJob -JobName getTasks -ComputerName $computername -ScriptBlock{
$Schedule = new-object -com("Schedule.Service")
$Schedule.connect($env:computername)
$Tasks = $Schedule.getfolder("\").gettasks(0)
$Tasks | Select-Object Name,Path,State,Enabled,LastRunTime,LastTaskResult
}
使用schtasks获取特定任务
schtasks /query /TN "\Microsoft\Windows\Autochk\Proxy" /v /fo csv |ConvertFrom-Csv
感谢Kayasax,您认为升级到PS3并使用PSScheduledJob模块将是一个有效的选择。这是有道理的吗?升级不会花费太多精力…:)我无法回答,因为我没有使用该模块,如果您仅将powershell脚本作为任务运行,是否有意义?