使用Powershell管理Windows计划任务

在Windows系统中,我们经常使用Schedule Task来配置计划任务,来完成需要一段时间内重复完成的操作。Windows Schedule Task与Linux的Cron任务管理系统极为相似,都用于管理定时任务,但是前者大多数人都是以图形化操作为主,Powershell的出现将会改变这种情况。使用Powershell管理Schedule Task会事Windows系统的管理更为高效。

Windows提供专用于任务管理的模块ScheduledTask

安装该模块后我们可以看到如下相关命令,这些命令将用与计划任务的管理

Import-Module -Name 'ScheduledTasks'

Get-Command -Module 'ScheduledTasks'
使用Powershell管理Windows计划任务

创建新的计划任务

下面内容将创建一条计划任务,计划任务的参数如下

  • Action: 执行一个powershell脚本,使用命令[New-ScheduledTaskAction]
  • Principal (Account):指定任务以系统账户,最高权限执行,使用命令[New-ScheduledTaskPrincipal]
  • Trigger:任务每天早上3点执行,并创建后的下一天开始,使用命令[New-ScheduledTaskTrigger]
  • Settings:如果任务执行时间超过30分钟,将会被终止,使用命令[New-ScheduledTaskSettingSet]
创建触发条件Trgger

实例中,任务设定每日触发,并于创建后的第一天开始执行,使用At参数设定任务运行日期和时间

$Params = @{
"Daily" = $True
"At"   = (Get-Date '3 AM').AddDays(1)
}
$Trigger = New-ScheduledTaskTrigger @Params
创建Action

默认情况下,Schedule Task不能运行powershell脚本,因此我们要使用Execute参数来调用powershell

$Params = @{
"Execute" = "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"
"Argument" = '-File "C:\\Scripts\\PSScript.ps1"'
}

$Action = New-ScheduledTaskAction @Params
创建任务计划Principal

使用最高权限运行选项,将使运行计划任务的账户提升至管理员身份,使其有足够的权限运行任务

$Params = @{
"UserID"   = "NT AUTHORITY\\SYSTEM"
"LogonType" = 'ServiceAccount'
"RunLevel" = 'Highest'
}

$Principal = New-ScheduledTaskPrincipal @Params
定义其它计划任务设置

计划任务设置有很多,我们将在本例中用到如下设置

  • ExecutionTimeLimit – 任务运行最大时长,超过该值及时任务未完成也将被终止,本例设置为30分钟
  • AllowStartIfOnBatteries – 笔记本在使用电池为电源时,是否运行
  • DontStopIfGoingOnBatteries – 切换电源为电池,是否停止任务
  • RestartCount – 任务运行失败后重试次数,本例设置为2次
  • RestartInterval – 任务运行失败后再次重试间隔,本例设置间隔5分钟
$Params = @{
"ExecutionTimeLimit"         = (New-TimeSpan -Minutes 30)
"AllowStartIfOnBatteries"   = $True
"DontStopIfGoingOnBatteries" = $True
"RestartCount"               = 2
"RestartInterval"           = (New-TimeSpan -Minutes 5)
}

$Settings = New-ScheduledTaskSettingsSet @Params
创建并注册Task,只有Task被注册后,Schedule Task才能识别并管理它
$Params = @{
"Action"   = $Action
"Principal" = $Principal
"Trigger"   = $Trigger
"Setting"   = $Settings
}

$Task = New-ScheduledTask @Params
$Task | Register-ScheduledTask -TaskName 'PSScript'
查看创建的task的信息

Get-ScheduledTask -TaskName 'PSScript' | Format-List

使用Powershell管理Windows计划任务
启用和禁用Task

禁用Task Get-ScheduledTask -TaskName 'PSScript' | Disable-ScheduledTask

使用Powershell管理Windows计划任务

启用Task Get-ScheduledTask -TaskName 'PSScript' | Enable-ScheduledTask

使用Powershell管理Windows计划任务

运行task Get-ScheduledTask -TaskName 'PSScript' | Start-ScheduledTask 停止task Get-ScheduledTask -TaskName 'PSScript' | Stop-ScheduledTask

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/9761

(0)
郭靖的头像郭靖
上一篇 2023年9月25日 下午5:03
下一篇 2023年9月27日 下午7:43

相关推荐

  • 此站点的连接不安全,使用不受支持的协议。ERR_SSL_VERSION_OR_CIPHER_MISMATCH(不支持的协议 客户端和服务器不支持常用的 SSL 协议版本或密码套件。)

    如图所示报错 一、解决方法一1.Microsoft Edge浏览器→点击右上角的三个点→选择设置 2.选择外观→打开Internet Explorer 模式(IE 模式)按钮 3.打开Microsoft Edge浏览器→输入自己要访问的IP地址或者是链接→回车访问→点击右上角的IE图标(在 Internet Explorer 模式下的重新加载选项卡) 4.访…

    2023年7月25日
    3.1K00
  • Windows Server 2016配置VPN服务器

    有时候工作需要,需要连接公司的ip办公,这个时候就需要vpn服务了,本文就是介绍如何利用windows2016来启用远程路由访问功能。 安装VPN服务 我们先将服务器加域,这样可以为以后的登陆使用域控账户来进行登陆。 添加远程访问服务 选择DirectAccess和VPN(RAS) 安装完成后选择打开开始向导 配置VPN服务 选择仅部署VPN 选择配置并启用…

    2023年10月19日
    1.6K00
  • Excel如何锁定单元格不被修改?Excel锁定单元格的方法

    在Excel中,锁定单元格是一种保护工作表数据的有效方式。通过锁定单元格,你可以防止其他用户或程序误修改或删除你的工作。这对于那些需要共享工作表但又希望保持数据的完整性和安全性的用户来说是非常有用的,不清楚如何操作小伙伴就一起来看看吧。 Excel锁定单元格的方法   1、进入软件,打开需要进行操作的表格。  2、选中表格所有数据区域,右击选择“设置单元格格…

    2024年6月12日
    1.4K00
  • windows使用ipmitools管理ipmi

    今日有个服务器IPMI密码忘记,无法登陆,但是服务器不能够进行重启,并且还是windows系统,所以尝试通过ipmitool进行管理 首先安装ipmitool http://s.cnaaa11.com/soft/ipmitool.zip 服务器本地win系统下安装此工具,用于对自身服务器BMC发送指令,实现带内管理: 安装步骤: 1) 将IPMIToolWi…

    2024年5月7日
    1.2K00
  • Win10提示你的设备缺少重要的安全和质量修复要怎么办

    最近有不少小伙伴在对自己的Win10系统进行更新时被提示“你的设备缺少重要的安全和质量修复”,这种一般是更新服务的时候出现问题,当然也有可能是系统本身的问题,那么要如何去解决呢?下面就和小编一起来看看方法吧。 解决方法一 1. 左下角打开搜索框,输入service,点击服务。 2. 在服务功能中找到更新选项,停止更改服务。 3. 然后删除更新下载文件,如下图…

    2024年6月6日
    1.7K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信