繁体   English   中英

如何使用 Windows 任务计划程序自动执行 PowerShell 脚本?

[英]How do I execute a PowerShell script automatically using Windows task scheduler?

我有一个发送电子邮件的 PowerShell 脚本。 我想每 1 分钟自动执行一次该脚本。 我该怎么做,使用任务调度程序?

目前我已经创建了一个任务并提供了我的脚本的路径。 但是该调度程序会打开我的脚本,而不是执行。

我使用的是 Windows 7 Professional 和 PowerShell 2.0.5 版。

创建计划任务并将操作设置为:

程序/脚本: Powershell.exe

参数: -File "C:\\Users\\MyUser\\Documents\\ThisisMyFile.ps1"

以下是使用 PowerShell 3.0 或 4.0 进行-RepeatIndefinitely及更高版本的-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 /? 对这些开关的解释。

如果你仍然遇到问题,你应该阅读这个问题

就我而言,我的脚本有参数,所以我设置:

参数-Command "& C:\\scripts\\myscript.ps1 myParam1 myParam2"

经过几个小时的互联网测试和研究,我终于找到了如何使用任务计划程序启动我的 PowerShell 脚本,这要归功于Jack Fruh @sharepointjack的视频使用 Windows 任务计划程序调度 PowerShell 脚本

程序/脚本 -> 通过 powershell.exe 放置完整路径

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

添加参数 -> 脚本和脚本的完整路径,不带任何“”。

从(可选)开始 -> 脚本所在的目录,没有任何“”。

您可以使用 Unblock-File cmdlet 取消阻止此特定脚本的执行。 这可以防止您进行任何出于安全考虑而可能不想要的永久性策略更改。

Unblock-File path_to_your_script

来源: 解锁文件

没有一个已发布的解决方案对我有用。 解决方法,有效:

创建一个run.bat并放入powershell.exe -file "C:\\...\\script.ps1"

然后将操作设置为程序/脚本: "C:\\...\\run.bat"

  1. 打开创建的任务调度程序

  2. 切换到“操作”选项卡并选择您创建的“操作”

  3. 在编辑部分,您可以使用浏览器在 system32\\WindowsPowerShell\\v1.0 文件夹中选择 powershell.exe。

     Example -C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
  4. 接下来,在“添加参数”-File 参数中,将您的脚本文件路径粘贴到您的系统中。

     Example – c:\\GetMFAStatus.ps1

此博客可能会帮助您使用 Windows 任务计划程序自动执行 Powershell 脚本

如果您只想执行 PowerShell 一次,或者在任务的调度程序上执行,那将是完美的选择。 但是,我想根据与任务计划程序不同的计划发送电子邮件通知。 例如,我的任务每周运行一次。 我想每小时执行一次 PowerShell 脚本来验证任务是否仍在运行。 有什么想法吗?

我也无法启动脚本,经过大量搜索后没有任何帮助。 没有 -ExecutionPolicy,没有命令,没有文件,"" 和 '' 之间没有区别。

我只是将我在 powershell 中运行的命令放在参数选项卡中: ./scripts.ps1 parameter1 11 parameter2 xx等等。 现在调度程序工作。 程序: Powershell.exe开始于: C:/location/of/script/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM