当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell 计划任务 |如何创建PowerShell计划任务?

作者:精品下载站 日期:2024-12-14 04:49:38 浏览:14 分类:玩电脑

PowerShell 计划任务 |如何创建PowerShell计划任务?


[玩转系统] PowerShell 计划任务 |如何创建PowerShell计划任务?

PowerShell 计划任务简介

计划任务只不过是自动运行以定期执行某些活动而无需手动干预的操作。该活动可以是重新启动系统、运行批处理命令或运行 PowerShell 脚本等任何活动。常见且单调的任务是通过计划任务更新或实现的任务。这有助于减少所花费的工时。根据用户的需要,计划任务可以每小时、每天或每周运行一次。本文将详细介绍如何创建计划任务以通过任务计划程序和 PowerShell 运行 PowerShell 脚本。

通过 PowerShell 创建计划任务的不同命令

以下是通过 PowerShell 创建计划任务所需的 cmdlet:

  • New-ScheduledTask
  • 新计划任务操作
  • 新计划任务触发器
  • 新的ScheduledTaskSettingsSet
  • Register-ScheduledTask

让我们详细了解上述每个 cmdlet。

1.新建计划任务

此 cmdlet 创建一个新的计划任务作业实例。

语法:

NAME
New-ScheduledTask
SYNTAX
New-ScheduledTask [[-Action] <CimInstance#MSFT_TaskAction[]>] [[-Trigger] <CimInstance#MSFT_TaskTrigger[]>] [[-Settings] <CimInstance#MSFT_TaskSettings>] [[-Principal]
<CimInstance#MSFT_TaskPrincipal>] [[-Description] <string>] [-CimSession <CimSession[]>] [-ThrottleLimit <int>] [-AsJob]  [<CommonParameters>]
ALIASES
None

参数:

  • 操作:表示任务需要执行的操作。它可以是多个操作,如果指定了多个操作,它们将按顺序运行。指定的最大操作数为 32。其类型为 CimInstance[]。默认值为无。它不接受管道输入和通配符。
  • AsJob:这表示要作为后台作业运行的任务。它的类型是开关。默认值为无。它不接受管道输入和通配符。
  • CimSession:这会在远程计算机上运行作业。它的类型是CimSession[],别名是session。默认值为无。它不接受管道输入和通配符。
  • 说明:这表示任务的基本定义。它的类型是字符串,默认值是none。它不接受管道输入和通配符。
  • 主体:表示任务需要使用的用户帐户。它的类型是CimInstance。默认值为无。它不接受管道输入和通配符。
  • 触发器:这表示将启动计划任务的触发器。触发器可以是基于时间的触发器,也可以是基于事件的触发器。一个任务最多可以有 48 个触发器。它的类型是CimInstance[]。默认值为无。它不接受管道输入和通配符。

示例:

$Tasktest = New-ScheduledTask -Action $testAction -Trigger $testTrigger -Settings $testSettings

2.新建ScheduledTaskAction

此 cmdlet 用于创建计划任务的操作。

语法:

NAME
New-ScheduledTaskAction
SYNTAX
New-ScheduledTaskAction [-Execute] <string> [[-Argument] <string>] [[-WorkingDirectory] <string>] [-Id <string>] [-CimSession <CimSession[]>] [-ThrottleLimit <int>]
[-AsJob]  [<CommonParameters>]
ALIASES
None

参数:

  • 参数:它指定要传递的参数列表。它的类型是字符串。默认值为无。它不接受管道输入和通配符。
  • AsJob:这表示要作为后台作业运行的任务。其类型为开关。默认值为无。它不接受管道输入和通配符。
  • 执行:表示要执行的文件的路径。它的类型是字符串。默认值为无。它不接受管道输入和通配符。
  • Id:它表示操作 ID,用于记录日志。它的类型是字符串。默认值为无。它不接受管道输入和通配符。
  • 工作目录:它表示任务计划程序将在其中运行的目录。默认位置是 %windir%\system32 目录。默认值为无。它不接受管道输入和通配符。

示例

New-ScheduledTaskAction -Execute "Notepad.exe"

3.新建ScheduledTaskTrigger

这将为计划任务创建触发器。触发器可以是基于时间的或基于事件的。

语法:

NAME
New-ScheduledTaskTrigger
SYNTAX
New-ScheduledTaskTrigger [-Once] -At <datetime> [-RandomDelay <timespan>] [-RepetitionDuration <timespan>] [-RepetitionInterval <timespan>] [-CimSession
<CimSession[]>] [-ThrottleLimit <int>] [-AsJob]  [<CommonParameters>]
New-ScheduledTaskTrigger [-Daily] -At <datetime> [-DaysInterval <uint32>] [-RandomDelay <timespan>] [-CimSession <CimSession[]>] [-ThrottleLimit <int>] [-AsJob]
[<CommonParameters>]
New-ScheduledTaskTrigger [-Weekly] -At <datetime> [-RandomDelay <timespan>] [-DaysOfWeek {Sunday | Monday | Tuesday | Wednesday | Thursday | Friday | Saturday}]
[-WeeksInterval <uint32>] [-CimSession <CimSession[]>] [-ThrottleLimit <int>] [-AsJob]  [<CommonParameters>]
New-ScheduledTaskTrigger [-AtStartup] [-RandomDelay <timespan>] [-CimSession <CimSession[]>] [-ThrottleLimit <int>] [-AsJob]  [<CommonParameters>]
New-ScheduledTaskTrigger [-AtLogOn] [-RandomDelay <timespan>] [-User <string>] [-CimSession <CimSession[]>] [-ThrottleLimit <int>] [-AsJob]  [<CommonParameters>]
ALIASES
None

参数:

  • 时间:指定必须触发任务的日期或时间。它的类型是日期时间。默认值为无。它不接受管道输入和通配符。
  • AtLogOn:它表示用户登录时启动的触发器。它的类型是开关参数。默认值为无。它不接受管道输入和通配符。
  • 每日:表示任务必须每天运行。它的类型是开关参数。默认值为无。它不接受管道输入和通配符。
  • 每周:表示任务必须每周运行一次。它的类型是一个开关参数。默认值为无。它不接受管道输入和通配符。

示例

$Sta = New-ScheduledTaskAction -Execute "Notepad"
$Stestjob = New-ScheduledTaskTrigger -Weekly -At 3 am

4.新建ScheduledTaskSettingsSet

这包含计划任务的设置。该对象用于修改设置并管理任务的行为。

语法:

NAME
New-ScheduledTaskSettingsSet
SYNTAX
New-ScheduledTaskSettingsSet [-DisallowDemandStart] [-DisallowHardTerminate] [-Compatibility {At | V1 | Vista | Win7 | Win8}] [-DeleteExpiredTaskAfter <timespan>]
[-AllowStartIfOnBatteries] [-Disable] [-MaintenanceExclusive] [-Hidden] [-RunOnlyIfIdle] [-IdleWaitTimeout <timespan>] [-NetworkId <string>] [-NetworkName <string>]
[-DisallowStartOnRemoteAppSession] [-MaintenancePeriod <timespan>] [-MaintenanceDeadline <timespan>] [-StartWhenAvailable] [-DontStopIfGoingOnBatteries] [-WakeToRun]
[-IdleDuration <timespan>] [-RestartOnIdle] [-DontStopOnIdleEnd] [-ExecutionTimeLimit <timespan>] [-MultipleInstances {Parallel | Queue | IgnoreNew}] [-Priority <int>]
[-RestartCount <int>] [-RestartInterval <timespan>] [-RunOnlyIfNetworkAvailable] [-CimSession <CimSession[]>] [-ThrottleLimit <int>] [-AsJob]  [<CommonParameters>]
ALIASES
None

示例:

$Statest = New-ScheduledTaskAction -Execute "Notepad"
$STSettest = New-ScheduledTaskSettingsSet -Priority 7

5. 注册定时任务

这是用来注册计划任务的。可以使用该脚本运行以下类型的应用程序。 Windows 应用程序、DOS 应用程序、批处理和 cmd 文件。

示例:

Register-ScheduledTask -TaskName "test task" -Trigger $testTime -User $trestUser -Action $testPS

创建任务的示例脚本

让我们借助示例代码创建一个任务:

代码:

Write-Host "Task Scheduler Creation"
Write-Host "Specifying the action"
$testAction = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument "-File 'C:\test.ps1'"
Write-Host "Setting the trigger"
$testTrigger = New-ScheduledTaskTrigger -Daily -At 4am
$testSettings = New-ScheduledTaskSettingsSet
Write-Host "Creating the task"
$testTask = New-ScheduledTask -Action $testAction -Trigger $testTrigger -Settings $testSettings
Write-Host "registering the task"
Register-ScheduledTask -TaskName 'Dummy TS' -InputObject $Task -User 'vignesh' -Password 'pass@123'
Write-Host "Task Created"

输出:

[玩转系统] PowerShell 计划任务 |如何创建PowerShell计划任务?

[玩转系统] PowerShell 计划任务 |如何创建PowerShell计划任务?

通过任务计划程序运行脚本

1. 通过在窗口中搜索打开任务计划程序,然后选择创建基本任务。为任务命名并选择“确定”

2.设置触发器,可以是每周、每天或每月

3. 在操作选项卡上选择要运行的文件

4. 在设置参数选项卡中传递脚本所需的参数(如果有)

5. 保存任务

6. 该任务将在任务调度程序库中可用。

结论

因此,本文详细介绍了如何在 PowerShell 中创建和配置计划任务。它详细解释了创建任务所涉及的各种 cmdlet、它们的语法和相应的参数以及适当的示例。它还介绍了如何直接在任务计划程序中创建任务。了解更多信息的最佳方法是使用上述步骤并自行探索来创建任务调度程序。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯