为计划任务添加多个操作项

时间:2015-01-13 09:33:14

标签: powershell scheduled-tasks powershell-v4.0

我创建了一个执行PowerShell脚本的计划任务。脚本从远程服务器提取磁盘信息。脚本和其他组件工作正常。我遇到的问题是我无法找到为此计划任务包含另一个Action项的方法(脚本的这一部分从不同的服务器集中提取一些信息,因此希望将它们放在同一个计划任务中)。

我是如何尝试的:

$parlist = @{
  Name = "CloudOnline-DiskReport"
  Trigger = New-JobTrigger -Daily -At "9:15 AM"
  FilePath = "C:\DiskInfo-1stSet.ps1"
  ScheduledJobOption = New-ScheduledJobOption -RunElevated -RequireNetwork -WakeToRun
}

Register-ScheduledJob @parlist

Get-ScheduledJob -Name CloudOnline-DiskReport |
  New-ScheduledTaskAction -Execute "C:\DiskInfo-2ndSet.ps1"

计划任务已成功创建,DiskInfo-1stSet.ps1正常工作,但未添加其他操作任务。我尝试了New-ScheduledTaskAction的多种变体,但都没有用。

1 个答案:

答案 0 :(得分:9)

New-ScheduledTaskAction只是创建一个新动作。您仍然需要将操作分配给任务。试试这个:

Get-ScheduledTask -TaskName 'CloudOnline-DiskReport' | ForEach-Object {
  $actions = $_.Actions
  $actions += New-ScheduledTaskAction -Execute 'C:\DiskInfo-2ndSet.ps1'
  Set-ScheduledTask -TaskName $_.TaskName -Actions $actions
}

如果您想在创建任务期间一次添加所有操作,您可以这样做(或多或少取自New-ScheduledTask文档的示例部分):

$actions   = (New-ScheduledTaskAction –Execute 'foo.ps1'),
             (New-ScheduledTaskAction –Execute 'bar.ps1')
$trigger   = New-ScheduledTaskTrigger -Daily -At '9:15 AM'
$principal = New-ScheduledTaskPrincipal -UserId 'DOMAIN\user' -RunLevel Highest
$settings  = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable -WakeToRun
$task      = New-ScheduledTask -Action $actions -Principal $principal -Trigger $trigger -Settings $settings

Register-ScheduledTask 'baz' -InputObject $task