在Windows上使用脚本创建一个定时任务计划,是比较繁琐的,需要多个命令共同参与。之前为了规避这个复杂性,使用了一个相对取巧的方案,把定时任务导出,再通过脚本导入。详见: https://blog.51cto.com/magic3/2583246 为了实现脚本直接创建,经过反复测试,最终完成。

脚本内容如下:


#脚本中调用的zabbix.ps1 的作用是Get-Content zabbix配置文内容并out-file到另一个文件。完全可以当作备份。

$action = New-ScheduledTaskAction -Execute "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"  -Argument "-file C:\Users\shi001admin\Desktop\zabbix.ps1" 
#3分钟执行一次,无期限运行。
$trigger = New-ScheduledTaskTrigger -Once -At (get-date) -RepetitionInterval (New-TimeSpan -Minutes 3) -RepetitionDuration ([System.TimeSpan]::MaxValue)
#电源选型设置
$setting = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -DontStopOnIdleEnd
#S4U:不管用户是否登录都要运行
$principal = New-ScheduledTaskPrincipal -UserId shi001admin -LogonType S4U
$name = New-ScheduledTask -Action $action -Trigger  $trigger   -Settings $setting  -Principal $principal

Register-ScheduledTask -TaskName  "testtask" -InputObject $name 

看看效果: