我创建了一个执行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
的多种变体,但都没有用。
答案 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