[玩转系统] 如何创建 PowerShell 计划任务
作者:精品下载站 日期:2024-12-14 03:44:51 浏览:14 分类:玩电脑
如何创建 PowerShell 计划任务
PowerShell 脚本是自动执行日常任务或生成每周报告的好方法。但是如何为 PowerShell 脚本制定计划任务呢?我们可以使用任务计划程序运行 PowerShell 脚本或在 PowerShell 中创建任务来执行此操作。
计划任务的优点是您可以设置并忘记它们。它们将在后台运行,并更新您的系统,或生成您必须手动执行的报告。
在本文中,我们将了解如何使用任务计划程序运行 PowerShell 脚本以及如何在 PowerShell 中创建计划任务。
使用任务计划程序运行 PowerShell 脚本
我们要考虑的第一个选项是使用 Windows 中的任务计划程序来运行 PowerShell 脚本。 Windows任务计划程序起源于Windows 95!是在 Windows 中安排任务的好方法。
要使用任务计划程序运行 PowerShell 脚本,我们不能简单地选择要计划的 PowerShell 文件。我们要做的是运行“程序”PowerShell 并使用参数选择我们要运行的文件。
所需时间:2 分钟
打开任务计划程序
单击开始并输入“任务计划程序”将其打开。或者在“开始”菜单中的“Windows 管理工具”(或使用 Win 11 时的“Windows 工具”)下选择它
创建新的基本任务
点击右侧操作栏中的创建基本任务...,并为您的任务命名。
(我建议在文件夹中组织您的任务,在左侧创建它们首先)安排任务
触发器决定任务何时执行。 选择一个触发器,例如每周,然后单击下一步来配置任务需要执行的具体时间。
设置操作
重要的部分来了,对于该操作,我们将启动一个程序
启动程序 - PowerShell
我们要运行的程序是PowerShell。只需在“程序/脚本”字段中输入 PowerShell (请参阅步骤 6 中的屏幕截图),您无需找到可执行文件的确切路径。
添加参数
在参数字段中,我们将添加参数
-File
和 PowerShell 脚本的路径。添加 PowerShell 开关-NoProfile
并将-ExecutionPolicy
设置为 ByPass 也是一个好主意。
如果您的脚本需要任何参数,那么您可以可以在路径后面添加它们(例如 -Output 参数):-NoProfile -ExecutionPolicy Bypass -File "C: \scripts\ADHealth.ps1" -输出“HTML”
开始于
始终将起始位置设置为与脚本所在位置相同的路径。这样,您的脚本生成的任何导出都将存储在与您的脚本相同的位置。否则,输出将保存在 C:\Windows\System32 中
完成
单击下一步并在完成屏幕上检查您的设置。确保您选择打开属性对话框...,以便我们配置更多设置。
高级设置
我们需要为计划的 PowerShell 任务更改两个设置。我们需要确保脚本即使在未登录时也能运行,您可以在“常规”选项卡上执行此操作。
并且我们希望确保脚本在运行时间超过一天。在设置下更改此设置,并将如果任务运行时间超过则停止任务设置为 1 天或更短。保存任务
单击确定并输入您的密码,以便任务可以在您未登录时运行。测试您的任务总是一个好主意,右键单击它,并选择运行立即运行该任务。
使用PowerShell创建计划任务
我们当然也可以使用PowerShell来创建和管理计划任务。在 PowerShell 中创建计划任务需要几个步骤。对于每个步骤,我们将使用不同的 cmdlet。
要创建计划任务,我们将使用以下 cmdlet:
New-ScheduledTaskTrigger为计划任务创建触发器对象
New-ScheduledTaskAction为计划任务创建操作
Register-ScheduledTask注册计划任务
Get-ScheduledTask显示计划任务
要在 PowerShell 中创建计划任务,我们至少需要为该任务定义触发器和操作。因此,要创建一个每周五运行并执行 PowerShell 脚本的简单任务,我们可以执行以下操作:
$taskTrigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Friday -At 3am
$taskAction = New-ScheduledTaskAction -Execute "PowerShell" -Argument "-NoProfile -ExecutionPolicy Bypass -File 'C:\scripts\ADHealth.ps1' -Output 'HTML'" -WorkingDirectory 'c:\scripts'
Register-ScheduledTask 'Lazy PS Tasks' -Action $taskAction -Trigger $taskTrigger
这将创建与我们使用任务计划程序创建的完全相同的任务。但让我们解释一下每个 cmdlet,看看我们有哪些选项。
创建触发器 - New-ScheduledTaskTrigger
第一步是定义触发器。这决定了我们何时要运行任务。就像任务调度程序一样,我们可以为任务定义多个触发器。
New-ScheduledTaskTrigger cmdlet 附带几个参数,允许您定义任务运行的时间:
- AtLogOn - 当用户登录时运行任务
- AtStartup - 系统启动时
- At - 与“一次”、“每天”或“每周”一起使用。定义运行任务的具体时间
- 每日 - 每天运行。使用 DaysOfWeek 定义日期
- DaysInterval - 每 x 天运行一次
- DaysOfWeek - 这可以与“每日”或“每周”一起使用。定义运行任务的日期
- 每周 - 每周运行任务
- WeeklyInterval - 确定周之间的间隔。
因此,要在每周周二和周四上午 08:30 运行该任务,我们可以创建以下触发器:
$trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Tuesday,Thursday -At 8:30am
定义操作 - New-ScheduledTaskAction
要在 PowerShell 中创建计划任务操作,我们需要定义希望它运行的程序、任何参数(例如 PowerShell 脚本的路径)以及工作目录(可选)。
因此,要运行 PowerShell 脚本,我们将 -Execute
参数设置为 PowerShell,并在 -Argument
参数中定义文件路径和其他参数。如果您的脚本需要它,您可以将 -WorkingDirectory
参数设置为脚本的路径
$action = New-ScheduledTaskAction -Execute 'PowerShell' -Argument '-NoProfile -ExecutionPolicy Bypass -File "C:\scripts\ADHealth.ps1" -Output "HTML"'
创建任务 - Register-ScheduledTask
定义了触发器和操作后,我们可以创建并注册计划任务。我们需要为我们的任务命名,我建议还添加一个任务路径(文件夹)。这将使您以后更容易检索任务。
Register-ScheduledTask -TaskName 'Lazy PS Tasks' -TaskPath 'LazyTasks' -Action $taskAction -Trigger $taskTrigger
如前所述,您可以为您的任务定义多个触发器和操作。为此,您需要在数组中添加触发器或操作。例如,要每周二、周四以及每月的第一天运行该任务,我们可以执行以下操作:
# Define the triggers for Tuesday and Thursday at 08:30 AM and when a user logs on
$taskTriggers = @(
New-ScheduledTaskTrigger -Weekly -DaysOfWeek Tuesday,Thursday -At 08:30,
New-ScheduledTaskTrigger -AtLogon
)
Register-ScheduledTask -TaskName 'Lazy PS Tasks' -TaskPath 'LazyTasks' -Action $taskAction -Trigger $taskTriggers
使用不同的权限运行任务
当我们使用计划任务创建 PowerShell 任务时,我们启用了无论用户是否登录都运行该任务的选项。为此,我们还需要提供用户名和密码来运行任务。此外,我们需要将任务的参数-RunLevel
设置为最高:
Register-ScheduledTask -TaskName "Lazy PowerShell Tasks" -taskPath 'LazyTasks' -Action $taskAction -Trigger $taskTrigger -User "a-d\Administrator" -Password 'yourPass123' -RunLevel Highest
查看计划任务
您可以在任务计划程序中查看您创建的任务。但您也可以使用 PowerShell 检索计划任务。为此,我们需要使用 cmdlet Get-ScheduledTask
。如果运行不带任何参数的 cmdlet,它将检索计算机上的所有计划任务。
正如您所看到的,这是相当多的。这就是为什么使用 taskPath
参数在文件夹中组织任务非常重要。这样你就可以使用TaskPath参数来只查看我们的任务:
Get-ScheduledTask -TaskPath \LazyTasks\
任务路径始终以反斜杠 \
开头和结尾。要查看您的任务,您需要提供任务名称。如果名称是唯一的,那么仅名称就足够了。否则,您还需要提供路径:
Get-ScheduledTask -TaskName 'Lazy PS Tasks' -TaskPath \LazyTasks\ | Select *
正如您在上面的屏幕截图中看到的,我们无法看到任务的所有详细信息。要查看操作或触发器,我们需要展开属性。我们可以通过使用 ExpandProperty 方法或将结果保存在变量中来完成此操作:
Get-ScheduledTask -TaskName 'Lazy PS Tasks' -TaskPath \LazyTasks\ | Select -ExpandProperty Triggers
# Or
$task = Get-ScheduledTask -TaskName 'Lazy PS Tasks' -TaskPath \LazyTasks\
$task.Triggers
更新任务
要使用 PowerShell 更新计划任务,您可以使用 Set-ScheduledTask
cmdlet。它的工作原理与 Register-ScheduledTask
cmdlet 类似。只需先创建一个新的触发器或操作,然后像创建它一样添加它。
# Define new trigger
$newTrigger= New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 08:30
# Update the task
Set-ScheduledTask -TaskName "Lazy PowerShell Tasks" -taskPath 'LazyTasks'-Trigger $newTrigger
总结
计划 PowerShell 任务既可以使用任务计划程序完成,也可以在 PowerShell 中使用 Register-ScheduledTask
cmdlet 完成。就我个人而言,我发现使用PowerShell创建任务更容易,但是要修改它,我发现任务调度程序更方便。
不过,您可以使用这两个选项来安排 PowerShell 脚本。我希望这篇文章对您有所帮助,如果您有任何疑问,请在下面发表评论。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag