小编tom*_*ags的帖子

在任务计划中添加第二个触发器

有一个 powershell 脚本,它将创建一个计划任务,通过 Octopus 部署到 Windows 2012 服务器。

Function Create-ScheduledTask($TaskName,$RunAsUser,$TaskRun,$Schedule,$StartTime,$StartDate,$Arguments,$RunWithElevatedPermissions,$Days,$Password){
    # set up
    $Command = "schtasks.exe /create /ru `"$RunAsUser`" /tn `"$TaskName`" /tr `"'$($TaskRun)' $Arguments`" $cmdSchedule $cmdDays $cmdStartDate $cmdStartTime /F $cmdInterval $cmdDuration $cmdRunLevel $cmdPassword"

    echo $Command
    Invoke-Expression $Command            
 }
Run Code Online (Sandbox Code Playgroud)

尝试在命令行上添加另一个触发器作为相同任务名称的一部分将不起作用,schtasks.exe这似乎与可以完成的 GUI 相矛盾。

这是用于创建事件触发器的函数,理想情况下,将其附加到相同的计划任务。

Function Create-ScheduledTaskEvent($TaskName,$RunAsUser,$TaskRun,$Arguments,$RunWithElevatedPermissions,$Password, $xPath, $channelName){

    $cmdRunLevel = if(-Not $RunWithElevatedPermissions){""}else{"/rl HIGHEST"}
    $cmdPassword = if([string]::IsNullOrEmpty($Password)){""}else{"/rp `"$Password`""}
    $cmdXPath = if([string]::IsNullOrEmpty($xPath)){""}else{"/sc ONEVENT /MO `"$xPath`" "}
    $cmdRunLevel = if(-Not $RunWithElevatedPermissions){""}else{"/rl HIGHEST"}

    $Command = "schtasks.exe /create $cmdRunLevel /ru `"$RunAsUser`" $cmdXPath /tn `"$TaskName`" /tr …
Run Code Online (Sandbox Code Playgroud)

powershell octopus-deploy windows2012

5
推荐指数
1
解决办法
6521
查看次数

标签 统计

octopus-deploy ×1

powershell ×1

windows2012 ×1