我有一个可以发送电子邮件的PowerShell脚本。我想每1分钟自动执行一次该脚本。如何使用任务计划程序执行此操作?
目前,我已经创建了一个任务并提供了脚本的路径。但是该调度程序会打开我的脚本,而不是执行脚本。
我有一个可以发送电子邮件的PowerShell脚本。我想每1分钟自动执行一次该脚本。如何使用任务计划程序执行此操作?
目前,我已经创建了一个任务并提供了脚本的路径。但是该调度程序会打开我的脚本,而不是执行脚本。
$PSVersionTable
PowerShell。默认情况下,PowerShell 2.0与Windows 7捆绑在一起。您可以安装Windows Management Framework 4.0来升级到PowerShell 4.0
PSVersion
一个。
Answers:
创建计划的任务并将操作设置为:
程序/脚本: Powershell.exe
参数: -File "C:\Users\MyUser\Documents\ThisisMyFile.ps1"
running
当我将其设置为以域管理员身份运行时,我发送电子邮件的powershell脚本会无限期挂起。也就是说domain\Administrator
,即使我未选中“以最高特权运行” ,也无法运行脚本。但是,我的个人域管理员帐户可以正常运行脚本。令人非常恼火的是,我的用户不会永远与公司在一起,但域管理员用户永远不会消失。
这是使用PowerShell 3.0或4.0-RepeatIndefinitely
及更高版本的示例:
# Trigger
$middayTrigger = New-JobTrigger -Daily -At "12:40 AM"
$midNightTrigger = New-JobTrigger -Daily -At "12:00 PM"
$atStartupeveryFiveMinutesTrigger = New-JobTrigger -once -At $(get-date) -RepetitionInterval $([timespan]::FromMinutes("1")) -RepeatIndefinitely
# Options
$option1 = New-ScheduledJobOption –StartIfIdle
$scriptPath1 = 'C:\Path and file name 1.PS1'
$scriptPath2 = "C:\Path and file name 2.PS1"
Register-ScheduledJob -Name ResetProdCache -FilePath $scriptPath1 -Trigger $middayTrigger,$midNightTrigger -ScheduledJobOption $option1
Register-ScheduledJob -Name TestProdPing -FilePath $scriptPath2 -Trigger $atStartupeveryFiveMinutesTrigger
您不仅应该在任务计划程序中使用脚本的路径,还应该在任务计划程序中使用脚本启动PowerShell,例如
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -NonInteractive -File "C:\Path\To\Your\PS1File.ps1"
有关powershell /?
这些开关的说明,请参见。
如果仍然遇到问题,则应阅读此问题。
-NoLogo
/-NonInteractive
开关任何区别运行文件时?
经过数小时的Internet测试和研究后,由于Jack Fruh @sharepointjack的视频使用Windows Task Scheduler计划PowerShell脚本,我终于找到了如何使用任务计划程序启动PowerShell脚本。
程序/脚本->通过powershell.exe获得完整路径
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
添加参数->脚本和脚本的完整路径,没有任何“”。
开始于(可选)->脚本所在的目录,没有任何“”。
您可以使用Unblock-File cmdlet取消阻止执行此特定脚本。这样可以防止您出于安全考虑而进行任何永久性的策略更改,而这些更改可能是您不希望的。
Unblock-File path_to_your_script
资料来源:Unblock-File
打开创建的任务计划程序
切换到“操作”标签,然后选择您创建的“操作”
在“编辑”部分中,使用浏览器可以在system32 \ WindowsPowerShell \ v1.0文件夹中选择powershell.exe。
Example -C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
接下来,在“添加参数” -File参数中,将脚本文件路径粘贴到系统中。
Example – c:\GetMFAStatus.ps1