如何在Powershell中创建计划任务时添加另一个操作

问题描述 投票:0回答:1

有一个 main.ps1 文件上传到设备,因此它可以创建分发时运行所需的所有必要任务。在这个 main.ps1 文件中,我添加了代码来创建新任务,但与其他任务不同,它需要多个操作,并且我不确定如何在代码设置的上下文中添加更多操作。 main.ps1 最初是由一个已经离开的人创建的,我只是对其进行添加。相关代码如下。任务中最好有 3 个操作。

$taskCommand = "c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe"
$taskStartTime = [datetime]::Now.AddMinutes(1) 
$taskArguments="-WindowStyle Hidden -NonInteractive -Executionpolicy unrestricted"
 
$service = new-object -ComObject("Schedule.Service")
$service.Connect()
$rootFolder = $service.GetFolder("\")

$iscreate77Task=$true

Function set77Definition {
    param ($tDefinition,$tDesc, $tInterval, $tArgs)
            $tDefinition.RegistrationInfo.Description = "$tDesc"
            $tDefinition.Settings.Enabled = $true
            $tDefinition.Settings.AllowDemandStart = $true

            $tDefinition.Settings.DisallowStartIfOnBatteries=$false
            $tDefinition.Settings.RunOnlyIfNetworkAvailable=$true
            $tDefinition.Settings.ExecutionTimeLimit="PT1H"

            $tDefinition.Principal.RunLevel =1

            $triggers = $tDefinition.Triggers
            $trigger = $triggers.Create(2) 
            $trigger.StartBoundary = $taskStartTime.ToString("yyyy-MM-dd'T'HH:mm:ss")            
            #$trigger.Repetition.Interval= "PT"+"$tInterval"+"M"
            $trigger.Enabled = $false

            $action = $tDefinition.Actions.Create(0)
            $action.Path = "$taskCommand"
            $action.Arguments = "$tArgs"
}

 Function create77Task {
    param(
        $taskName = "Run_77",
        $taskScript = "C:\code-client\Run_77.ps1",
        $taskDescr = "Starts and stops process to facilitate launching 77",
        $taskArg = "$taskArguments -file $taskScript",
        $taskDefinition = $service.NewTask(0),
        $interval=2          
    )
       set77Definition -tDefinition $taskDefinition -tDesc $taskDescr -tInterval $interval -tArgs $taskArg
        $rootFolder.RegisterTaskDefinition("$taskName",$taskDefinition,6,"System",$null,5)
}

if($iscreate77Task){
create77Task
}
powershell scheduled-tasks powershell-5.0
1个回答
0
投票

我建议你现代化你的代码并使用预定任务powershell库而不是COM控件

New-ScheduledTask
将接受一系列操作。 查看文档

© www.soinside.com 2019 - 2024. All rights reserved.