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

相关推荐

  • Win系统C盘拒绝访问或打不开怎么办

    在使用Win系统的时候,有用户可能会遇到C盘拒绝访问或者无法打开的情况,因此可能会感到困惑和无助。而这通常是由于权限设置问题或者其他系统错误导致的。不过,不必过于担心,因为这种情况通常可以通过一些简单的步骤来解决,一起来看看吧。   C盘拒绝访问或打不开的解决方法   方法一:运行杀毒软件   使用受信任的杀毒软件扫描和清除病毒。你可以通过下载专业杀毒软件并…

    2024年6月13日
    1.3K00
  • 常见IIS错误解决方法

    1、错误号401.1症状:HTTP 错误 401.1 – 未经授权:访问由于凭据无效被拒绝。分析:由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问。解决方案:(1)查看IIS管理器中站点安全设置的匿名帐户是否被禁用,如果是,请尝试用以下办法启用:控制面板->管理工具->计算机管理->本地用户和组,将IUS…

    2022年11月25日
    1.5K00
  • IIS7下配置ASP+ACCESS环境

    第一步、检查IIS是否开启Asp.net 第二步、IIS面板设置 点击IIS主页->点击ASP->启用父路径 配置应用程序池,启用32位支持:点击应该程序池->点击右边设置应用程序池默认设置->启用32位应用程序 然后再给“系统盘:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp”目录添加一…

    2022年11月23日
    1.5K00
  • Windows挂载虚拟磁盘VHD/VHDX文件

    挂载VHD/VHDX 打开磁盘工具 WIN+R弹出运行窗口,输入:diskmgmt.msc命令,回车确认弹出磁盘管理工具 附加VHD/VHDX文件 可以看到已经添加到系统中,接下来就可以进行初始化操作 在系统中操作 打开我的电脑,可以发现多了一块磁盘 这个就是我们附加的vhdx文件。此时,已经可以对改vhdx文件进行操作了 分离vhdx

    2022年7月14日
    2.1K00
  • Windows server 2012 r2 修改用户名、修改密码、设置服务器禁止ping、修改远程连接端口为39527、增加一个内网ip、安装mysql/php。

    修改用户名 1.打开左下角的win标,然后点管理工具 2.打开本机安全策略 3.打开本地策略-安全选项-翻到最下面,打开重命名系统管理员账户 4.双击打开,输入自己的需要的,然后点击“应用”-“确定” 5.然后到“计算机管理”这边,点击“本地用户和组”-“用户”,发现管理员的名称已经更改成功 修改密码 1.选择想改变密码的账户右击,选择“设置密码” 2.点击…

    2022年7月18日
    2.6K00

发表回复

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

在线咨询: QQ交谈

邮件:712342017@qq.com

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

关注微信