使用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

相关推荐

  • Win10共享文件夹无法访问怎么办

    无论是学习还是工作我们都会去设置共享文件来使用,不过难免也会遇到无法打开或者使用共性文件夹的情况,而这一般是系统设置出现问题,而以下是小编所带来几种解决win10不能共享文件夹的解决方法,一起来看看吧。   Win10无法打开共享文件的解决方法   方法一   1. 首先在Windows10电脑上按下Win+R组合键,打开运行窗口,输入命令services.…

    2024年6月11日
    1.8K00
  • 实用Word技巧分享:快速且批量删除空格、空行 word如何批量删除空格行

    今天我们来聊聊Word查找替换技巧,介绍一下批量删除空格、空行的方法,快来看看吧! 在日常工作中我们经常会碰到以下2个困扰: 如,很多网上下载或拷贝到Word的纯文本形式的资料,最烦的莫过于文档中有一大堆空格或空行(回车符),格式非常混乱,完全不符合排版要求,如图所示。如果要一行一行的删除它们,费时费力。 为了快速让文本规范整洁,效果如图所示。 接下来,教大…

    2024年5月7日
    1.8K00
  • windows系统下如何更改远程连接端口并在防火墙内放行

    步骤一:通过注册表修改远程端口 众所周知windows系统默认的远程桌面端口是3389,这样对于开启远程桌面的计算机有一定的安全威胁,修改远程桌面的默认端口可以提高系统的安全性! 按“win键+r打开运行,输入 “regedit”点确定; 在注册表编辑器里面打开“HKEY_LOCAL_MACHINE”文件; 继续打开列出文件中的system”文件 继续打开s…

    2022年6月9日
    3.7K10
  • 如何使用VNC进行远程桌面控制

    VNC是一款很实用的可以实现远程桌面控制的小工具,我遇到的有两种情况比较常见,一是有时候时候可能你会外出或离开自己办公室(但可以访问到办公司的网络),而很多资料都保存在办公室的台式机上,这时如果突然有问题需要用到那些资料,你又不方便立刻回去,这时你就可以考虑借助笔记本电脑通过VNC远程控制自己的台式机桌面进行操作,处理一些紧急问题;还有一种情况就是你外出或离…

    2024年5月13日
    1.6K00
  • 由于没有远程桌面授权服务器可以提供许可证,远程会话连接已断开。请跟服务器管理员联系解决方法

    server2016远程桌面出现一下提示,无法正常链接 问题原因 是安装了远程桌面授权服务 解决方法 使用mstsc  /v: 192.168.188.14 /admin 强制登陆服务器 远程登陆系统后,运行输入Regedit 进入注册表 查找如下信息删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentCon…

    2024年2月19日
    1.9K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信