使用Powershell脚本从另一个脚本中创建新任务序列

时间:2018-08-01 12:34:57

标签: powershell

我正在尝试制作ps脚本,以与我提供路径的另一个脚本建立新的任务序列。

问题在于,尽管脚本创建了一个Task,但是PowerShell脚本却没有按照我的意愿启动。

# Script: Make new Task Scheduele
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-NoProfile -WindowStyle Hidden -Path 
$env:USERPROFILE\Downloads\Repository\rig_monitoring.ps1'
$trigger = New-ScheduledTaskTrigger -At 12am -Once -RepetitionInterval (New-TimeSpan -Minutes 4) -RepetitionDuration (New-TimeSpan -Days (365 * 20))
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "Monitoring" -Description "Monitoring Set-up 4 minute interval" -User "System" -RunLevel Highest

2 个答案:

答案 0 :(得分:0)

非常感谢您提供的所有帮助。

最终版本完全可以满足我的需求:

脚本:新建任务计划表

$location = (get-childitem -Path 'C:\' -Filter 'powershell_monitoring.ps1' -Recurse -ErrorAction SilentlyContinue).FullName
$action = New-ScheduledTaskAction -Execute 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' -Argument "-NonInteractive -NoLogo -NoProfile -File $location"
$trigger = New-ScheduledTaskTrigger -At $(Get-Date).AddMinutes(1) -Once -RepetitionInterval (New-TimeSpan -Minutes 4) -RepetitionDuration (New-TimeSpan -Days (365 * 20))
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "PS Monitoring" -Description "Monitoring Set-up 4 minute interval" -User "System" -RunLevel Highest

答案 1 :(得分:0)

原始回复

  

“到处都可以找到rig_monitoring.ps1的解析路径”

为什么不只使用这个:

(Get-ChildItem -Path 'C:\' -Filter 'rig_monitoring.ps1' -Recurse -ErrorAction SilentlyContinue).FullName.

更新后的回复

只要用户系统上有多个驱动器,并且用户有可能将其保存到其中一个驱动器上。

(Get-PSDrive -PSProvider 'FileSystem').Root | 
%{(Get-ChildItem -Path $PSItem -Filter 'rig_monitoring.ps1' -Recurse -ErrorAction SilentlyContinue).FullName} | 
Sort-Object LastAccessTime -Descending | Select-Object -First 1