使用任务调度器实现 PowerShell 脚本的自动化
Windows 任务计划程序可以帮助我们在特定时间或满足特定条件和触发器时自动启动程序或 PowerShell 脚本。
本文将向我们展示如何从任务计划程序运行 PowerShell 脚本并使用 Windows PowerShell 创建计划任务。
使用任务计划程序运行 PowerShell 脚本
按 Windows+R
打开任务计划程序控制台,然后在打开的窗口中键入 taskschd.msc
。执行后,请按照以下步骤操作。
首先,单击创建任务
并输入新任务的名称和描述。接下来,选中以最高权限运行
框以使用管理员权限运行程序。
运行任务时,最好分配一个单独的服务帐户来执行任务,无论用户当前是否处于会话中。
其次,单击触发器选项卡,然后单击新建...
按钮。这里我们可以指定触发任务执行的条件。
有多种方法可以开始一项任务。
- 按计划
- 登录时
- 启动时
- 空闲时
- 在一个事件上
- 在任务创建/修改
- 在连接到用户会话时
- 与用户会话断开连接
- 在工作站锁定
- 在工作站解锁
选择适合情况的触发器。
第三,单击 Actions
选项卡,然后单击 New…
。在这里,我们可以指定在满足触发条件时将执行的操作。
必须完全遵循此步骤才能正确运行 PowerShell。要自动安排系统将执行的 PowerShell 脚本,请填写以下字段:
-
行动:
启动程序
-
程序\脚本:
powershell
(或powershell.exe
) -
添加参数(可选):
-File
(在此处指定文件的路径)(此处也放置任何其他参数)
单击确定
以应用更改。
第四,Conditions
选项卡使我们能够指定与触发器一起确定系统应如何运行任务的条件。
第五,我们还可以在设置
选项卡上为你的计划任务设置附加参数。
六、配置任务时,系统会询问我们第一步提供的账号密码。输入密码并点击 OK
保存任务。
完成后,如果系统已通过设置触发器启动该任务,则该任务应成功运行 PowerShell 文件。
在 PowerShell 中创建计划任务
现在我们已经讨论了使用任务计划程序设置任务,让我们讨论如何使用 PowerShell 创建计划任务。
PowerShell 3.0 和 4.0 引入了用于创建计划任务的 cmdlet,例如 New-ScheduledTaskTrigger
和 Register-ScheduledTask
。
# Specify the trigger settings
$Trigger= New-ScheduledTaskTrigger -At 10:00am -Daily
# Specify the account to run the script
$User= "NT AUTHORITY\SYSTEM"
# Specify program to run (PowerShell)
$Action= New-ScheduledTaskAction -Execute "PowerShell" -Argument "-file C:\PS\PSScript.ps1"
# Specify the name of the task
Register-ScheduledTask -TaskName "Test Script" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Force
其他可能对设置新任务有用的触发选项包括:
-
-AtStartup
在 Windows 启动时触发我们的任务。 -
-AtLogon
在用户登录时触发我们的任务。 -
-Once
触发我们的任务一次。我们可以使用-RepetitionInterval
参数设置重复间隔。 -
-Weekly
每周触发一次我们的任务。
请注意,在使用这些 cmdlet 时,不可能像我们使用任务计划程序工具那样触发事件
执行。
带有 on an event
触发器的 PowerShell 脚本要复杂得多,因此这是使用 PowerShell 而不是 Task Scheduler 的缺点。
相关文章
在 PowerShell 中提取子字符串
发布时间:2024/02/07 浏览次数:162 分类:编程语言
-
本文将讨论如何使用 PowerShell 的字符串库有效地提取字符串中的子字符串。作为 Windows 管理员的一个典型场景是找出一种方法来在称为子字符串的字符串中查找特定的文本片段
在 PowerShell 中连接字符串
发布时间:2024/02/07 浏览次数:174 分类:编程语言
-
本文将展示我们可以在 PowerShell 中使用的所有可能的方法来连接字符串和变量。PowerShell 使用不同的运算符和函数来实现字符串连接。
在 PowerShell 中将字符串转换为整数
发布时间:2024/02/07 浏览次数:131 分类:编程语言
-
本教程将教你在 PowerShell 中将字符串转换为整数。在 PowerShell 中使用 [int] 将字符串转换为整数
在 PowerShell 中将字符串拆分为单独的变量
发布时间:2024/02/07 浏览次数:140 分类:编程语言
-
本教程将介绍在 PowerShell 中将字符串拆分为单独的变量。字符串是用于表示文本的字符序列。它是 PowerShell 中常见的数据类型之一。
在 PowerShell 中获取变量的字符串长度
发布时间:2024/02/07 浏览次数:113 分类:编程语言
-
本教程将教你在 PowerShell 中获取变量的字符串长度。字符串是 PowerShell 中最常用的数据类型之一;它包含字符或文本的序列。你可以使用单引号或双引号定义字符串。
在 PowerShell 中查找子字符串的位置
发布时间:2024/02/07 浏览次数:84 分类:编程语言
-
本教程将教你在 PowerShell 中查找子字符串的位置。PowerShell 中的字符串和子字符串 字符串是 PowerShell 中使用的常见数据类型。
在 PowerShell 中比较两个字符串对象的内容
发布时间:2024/02/07 浏览次数:65 分类:编程语言
-
本教程将教你比较 PowerShell 中两个字符串对象的内容。字符串是 PowerShell 中最常用的数据类型之一。
使用 PowerShell 替换文件中的文本
发布时间:2024/02/07 浏览次数:118 分类:编程语言
-
本教程将教你使用 PowerShell 替换文件中每个出现的字符串。PowerShell 是一个强大的工具,可以执行不同的文件和文件夹操作。
PowerShell 中加入路径以将两个以上的字符串组合成一个文件路径
发布时间:2024/02/07 浏览次数:84 分类:编程语言
-
本教程将教你使用 Join-Path 将两个以上的字符串组合成一个文件路径。