🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
文章目录
- 🍬 博主介绍
- 1 windows任务计划程序介绍
- 2 任务计划程序窗口写入任务计划程序
- 2.1打开任务计划程序窗口
- 2.2 创建任务和创建基本任务介绍
- 2.3 选择创建任务
- 2.4 常规设置
- 2.4.1 名称
- 2.4.2 位置
- 2.4.3 创建者
- 2.4.4 描述
- 2.4.5 用户账户
- 2.4.6 更改用户和组
- 2.4.7 只在用户登录时运行
- 2.4.8 不管用户是否登录都要运行
- 2.4.9 使用最高权限运行
- 2.4.10 隐藏
- 2.5 触发器设置
- 2.5.1 开始任务:
- 2.5.2 设置
- 2.5.3 高级设置
- 2.6 操作设置
- 2.6.1 操作:
- 2.6.2 设置
- 2.6.3 注意事项
- 2.6.3.1 如果是执行cmd脚本
- 2.6.3.2 如果是执行powershell
- 2.5.1 空闲
- 2.5.2 电源
- 2.6 设置
- 2.7 创建成功
- 3 命令行写入任务计划程序
- 3.1 Schtasks命令详解
- 3.1.1 语法:
- 3.1.2 参数:
- 3.1.3 示例
- 4 写入计划任务实例讲解
- 4.1 每五分钟执行javs一次
- 4.2 每三分钟执行javs启动程序一次
- 5 导入\导出任务计划程序
- 5.1 使用任务计划程序窗口导入导出
- 5.1.1 导出
- 5.1.2 导入
- 5.2 使用PowerShell导出任务
- 5.2.1 导出
- 5.2.2 导入
- 相关资源
1 windows任务计划程序介绍
计划任务是系统的常见功能,利用任务计划功能,可以将任何脚本、程序或文档安排在某个最方便的时间运行。任务计划在每次系统启动的时候启动并在后台运行。
当我们需要在服务器上定时执行一些重复性的事件时使用的,可以通过计划任务程序来运行准备好的脚本、批处理文件夹、程序或命令,在某个特定的时间运行。
2 任务计划程序窗口写入任务计划程序
2.1打开任务计划程序窗口
方式一:控制面板–>管理工具–>任务计划程序
方式二:运行窗口或者撞断面板执行如下命令:Taskschd.msc
Windows10系统的任务计划程序窗口如下:
2.2 创建任务和创建基本任务介绍
其中创建任务分创建基本任务和创建任务,这两者本身并没有区别,只是创建的过程,一个是可以最简化的任务创建方式,一个是完整的创建窗口页面
2.3 选择创建任务
这里只介绍创建任务,创建任务包含了创建基本任务,可以在任意一个文件夹下创建计划任务,效果是一样的,选中文件夹,然后右键,创建任务。
点击创建任务之后会弹出一个创建任务的窗口,下载在创建过程中对窗口中口中包含的字段进行解释。
2.4 常规设置
首先进行常规设置,字段描述于图片后面呈现
2.4.1 名称
这里输入一个任务的名称,很好理解,可任意填写。
2.4.2 位置
就是你选择的文件夹处在的位置,这里的\表示创建的位置在任务计划程序库的下面,也就是任务计划程序的根目录下面。
2.4.3 创建者
你当前登陆的账号,当前我是Administrator所以创建者就是Administrator
2.4.4 描述
对这个任务的描述,可任意填写
2.4.5 用户账户
这里点更改用户或组,可以选择切换到其他账户或者组。
里面可以选择到三类账号以及组如,下:
1.域账号
2.本地账号
3.系统账号,如system
4.组,含域、本地组
2.4.6 更改用户和组
这里我不更改账号了,我直接用登录的administrator进行操作。
这里选择的账号和组,会使用该账号的权限进行任务的执行,前提是创建任务的账号可以操作这个执行的用户账户,否则需要输入对应的账号密码。
我们常规会用到如下账号:
1.具有本地管理员的账号,可是是创建者的账号,也可以是别的
2.具有域权限的账号
3.使用system,因为system具有很大的权限,可以执行很多本地管理员也无法执行的任务。
2.4.7 只在用户登录时运行
只有用户登陆时才能执行,如果用户账户注销了,这个任务怎么也无法执行。通常用于一些需要输入账号密码,但是不方便输入的任务,因为本地你输入了账号密码,是会保存在任务计划中的。
2.4.8 不管用户是否登录都要运行
一般我们默认会选线该选项,并且,当需要访问其他资源,如域中的,其他服务器的资源,我们需要保存一下账号的密码。
2.4.9 使用最高权限运行
有时候我们使用的管理员账号,但是是需要提升,才能执行管理员的权限,这个作用就是帮你提升到管理员的权限了。
2.4.10 隐藏
就是把任务隐藏了,很少使用,如果隐藏了,要找出来,需要额外通过命令找到他。我这里就不隐藏了,下一篇文章会讲到如何隐藏任务计划,如何发现隐藏的任务计划。
2.5 触发器设置
触发器只有新建、编辑、删除三个按钮,针对具体触发的内容的操作。
点击新建触发器弹出新建触发器窗口
2.5.1 开始任务:
默认都是使用的按预定计划来执行,其他几个任务状态可以根据字面意思的实际需求进行设置,基本属于是特殊用法,等于是在下面的任务设置的基础上,加了条件。
2.5.2 设置
设置分一次,或者周期的每天,每周,每月。里面左侧跟右侧同时选择生效,例如,可以选择每天,开始2022/09/08 00:00:00点开始。可以选择,每2天 每3天 ,选择好了之后,他会在每天(或者2、3天)的 00:00:00 开始。
设置里面分的很细,可以只执行一次,也可以周期性执行。我这里就选择执行一次,在下午六点执行。
2.5.3 高级设置
1.任务最多延迟时间(随机延迟):
这个是针对有部分需求,需要随机的,他会通过系统自带的随机函数,在未来指定如一个小时内执行,而不是每天固定的。
2.重复任务间隔:
这个功能是实现最短周期重复任务的功能,这个是经常会被用到的功能,这个功能和后面的持续时间是一起使用的。
3.重复持续时间结束时停止所有运行的任务:
因为重复任务可能导致后台存在很多个任务,所以可以勾选重复持续时间结束停止他发起的所有任务,从而避免资源占用
4.任务的运行时间超过此值停止执行:
字面意思
5.到期时间:
选择了到期时间,那么所有这个任务发起的,到这个到期时间后就不在发起,并且会停止所有任务。类似关闭任务进程并且禁用任务。
6.已启用:
字面意思,就是启用了高级设置
2.6 操作设置
触发器只有新建、编辑、删除三个按钮,针对具体操作的内容进行操作。
点击新建触发器弹出新建操作窗口,我这里就让他启动Autoruns程序
2.6.1 操作:
分启动程序还有其他两种,嗯,其他两种基本没人用,所以只保留了启动程序,其他两种被弃用了(发送电子邮件、显示消息)。
2.6.2 设置
这里我就是简单的打开了一个程序,关于其他字段介绍在图后呈现
1.程序和脚本:
关于程序,直接选择到对应的程序路径即可
如:C:\Users\Administrator\Desktop\工具\Autoruns\Autoruns64.exe
2.添加参数:
可以添加这个程序支持的参数,效果类似在命令行执行一个程序,打一个空格后面加了参数
3.起始于:
选择这个程序的执行的路径,一般会选择到该程序所在的目录,确保执行的时候,里面会调用到同目录文件,可以顺利调用。
2.6.3 注意事项
2.6.3.1 如果是执行cmd脚本
说明:可以直接选择到具体路径就行,最好的保证能执行脚本的方法如下
路径:输入 cmd
添加参数:输入要执行的脚本路径,如c:\aa.bat
起始于:选择这个程序的执行的路径,一般会选择到该程序所在的目录,确保执行的时候,里面会调用到同目录文件,可以顺利调用
2.6.3.2 如果是执行powershell
说明:很多powershell脚本添加后是无法执行的,只能通过先打开powershell,然后把脚本当做一个参数输入,才能顺利打开
路径:输入powershell
添加参数:输入要执行的脚本路径,如:c:\aa.ps1
起始于:选择这个程序的执行的路径,一般会选择到该程序所在的目录,确保执行的时候,里面会调用到同目录文件,可以顺利调用
5、条件设置
字面意思,基本都能看得懂,就是额外增加条件,一般保持默认,我这里也保持默认
2.5.1 空闲
2.5.2 电源
2.6 设置
字面意思,基本都能看得懂,就是额外增加条件,一般保持默认,我这里也保持默认
2.7 创建成功
点击确认即可创建成功,如果需要填入密码,自行填入就行。
到点了就自动执行了我之前设定的任务,打开了Autoruns.exe程序
3 命令行写入任务计划程序
windows系统中,可通过命令行创建任务计划,用到 schtasks 命令
3.1 Schtasks命令详解
安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。
3.1.1 语法:
schtasks/create /tn TaskName /tr TaskRun /sc schedule [/mo modifier ]
[/d day][/m month[,month...][/i IdleTime][/st StartTime]
[/sd StartDate][/ed EndDate][/scomputer[/u [domain\]user /p password]]
[/ru {[Domain\]User|"System"} [/rp Password]]
3.1.2 参数:
/tn TaskName
:指定任务的名称
/tr TaskRun
:指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。如果忽略该路径,SchTasks.exe 将假定文件在Systemroot\System32 目录下。
/sc schedule
:指定计划类型。有效值为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。
值 | 说明 |
---|---|
MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY | 指定计划的时间单位。 |
ONCE | 任务在指定的日期和时间运行一次。 |
ONSTART | 任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。 |
ONLOGON | 每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。 |
ONIDLE | 只要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。 |
/mo modifier
:指定任务在其计划类型内的运行频率。这个参数对于 MONTHLY 计划是必需的。对于 MINUTE、HOURLY、DAILY 或 WEEKLY 计划,这个参数有效,但也可选。默认值为 1
计划类型 | 修饰符 | 说明 |
---|---|---|
MINUTE | 1 - 1439 | 任务每1分钟运行一次。 |
HOURLY | 1 - 23 | 任务每小时运行一次。 |
DAILY | 1 - 365 | 任务每n天运行一次。 |
WEEKLY | 1 - 52 | 任务每n周运行一次。 |
MONTHLY | 1 - 12 | 任务每n月运行一次。 |
LASTDAY | 任务在月份的最后一天运行。 | |
FIRST、SECOND、THIRD、FOURTH、LAST 与 | /d参数共同使用,并在特定的周和天运行任务。 |
/d dirlist
:指定周或月的一天。只与 WEEKLY 或 MONTHLY 计划共同使用时有效。
计划类型 | 日期值 |
---|---|
WEEKLY | 可选项。有效值是MON~SUN和* (每天) 。MON是默认值。 |
MONTHLY | 在使用FIRST、SECOND、THIRD、 FOURTH或LAST修饰符(/mo)时,需要MON ~ SUN中的某个值。1 ~ 31是可选的,只在没有修饰符或修饰符为1 ~ 12类型时有效默认值是1 (月份的第一天)。 |
/m month[,month…]
:指定一年中的一个月。有效值是 JAN ~ DEC 和 * (每个月)。/m参数只对于 MONTHLY 计划有效。在使用 LASTDAY 修饰符时,这个参数是必需的。否则,它是可选的,默认值是 * (每个月)。
/i InitialPageFileSize
:指定任务启动之前计算机空闲多少分钟。键入一个1 ~ 999之间的整数。这个参数只对于 ONIDLE 计划有效,而且是必需的。
/st StartTime
:以HH:MM:SS24 小时格式指定时间。默认值是命令完成时的当前本地时间。/st参数只对于 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 和 ONCE 计划有效。它只对于 ONCE 计划是必需的。
/sd StartDate
:以MM/DD/YYYY格式指定任务启动的日期。默认值是当前日期。/sd参数对于所有的计划有效,但只对于 ONCE 计划是必需的。
/ed EndDate
:指定任务计划运行的最后日期。此参数是可选的。它对于 ONCE、ONSTART、ONLOGON 或 ONIDLE 计划无效。默认情况下,计划没有结束日期。
/s Computer
:指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。
/u [domain]user
:使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。
/p password
:指定在/u参数中指定的用户帐户的密码。如果使用/u参数,则需要该参数。
/ru {[Domain]User|“System”}
:使用指定用户帐户的权限运行任务。默认情况下,使用用户登录到运行 SchTasks 的计算机上的权限运行任务。
值 | 说明 |
---|---|
[domain}User? | 指定用户帐户。 |
“System”或”” | 指定操作系统使用的NT Authority\System帐户。 |
/rp Password
:指定用户帐户的密码,该用户帐户在/ru参数中指定。如果在指定用户帐户的时候忽略了这个参数,SchTasks.exe 会提示您输入密码而且不显示键入的文本。使用 NT Authority\System 帐户权限运行的任务不需要密码,SchTasks.exe 也不会提示索要密
3.1.3 示例
示例:
将定时执行脚本 C:\test\test.vbs 加入到任务计划中,任务名为 “Test Script”
每20分钟执行一次
schtasks /create /sc minute /mo 20 /tn “Test Script” /tr C:\test\test.vbs
4 写入计划任务实例讲解
4.1 每五分钟执行javs一次
直接双击每5执行javs一次就可以新建一个计划任务,每五分钟执行一次javs.exe
schtasks /create /tn updater /tr "C:\Users\Administrator\Documents\wkbd\javs.exe" /sc minute /mo 5
我们也可以在终端中直接执行bat里面的命令创建计划任务
任务计划程序创建成功
为了避免不执行,我们进行如下设置
4.2 每三分钟执行javs启动程序一次
schtasks /create /tn updater2 /tr "C: \Users\Administrator\Documents \wkbd\执行javs. bat" /sc minute /mo 3
直接双击每3执行javs一次就可以新建一个计划任务,每3分钟执行一次执行javs.bat,也就是每三分钟执行一次javs.exe
5 导入\导出任务计划程序
如果是需要批量导入到多台机器的,可以把脚本\程序的位置统一路径放置。
然后把第一台的完成任务导出,之后在其他机器导入任务就可以了。
5.1 使用任务计划程序窗口导入导出
5.1.1 导出
导出如下图,右键任务计划程序选择文件夹进行导出即可导出任务计划程序。
5.1.2 导入
导入如下图,右键左侧文件夹点击导入即可选择文件进行导入。
5.2 使用PowerShell导出任务
5.2.1 导出
以管理员身份运行Powershell
键入以下命令以导出计划任务,然后按Enter键:
Export-ScheduledTask -TaskName “TASK-NAME” -TaskPath “\TASK-PATH-TASKSCHEDULER” | out-file C:\PATH\TO\EXPORT-FOLDER\TASK-EXPORT-NAME.xml
Export-ScheduledTask -TaskName “任务计划程序名称” -TaskPath “\TASK-PATH-TASKSCHEDULER” | out-file 导出文件地址
5.2.2 导入
以管理员身份运行Powershell
键入以下命令以导入计划任务,然后按Enter键:
Register-ScheduledTask -xml (Get-Content ‘C:\PATH\TO\IMPORTED-FOLDER-PATH\TASK-INPORT-NAME.xml’ | Out-String) -TaskName “TASK-IMPORT-NAME” -TaskPath “\TASK-PATH-TASKSCHEDULER” -User COMPUTER-NAME\USER-NAME –Force
Register-ScheduledTask -xml (Get-Content ‘任务计划程序名称xml文件地址’ | Out-String) -TaskName “任务计划程序名称” -TaskPath “\TASK-PATH-TASKSCHEDULER” -User 电脑名称\用户名称 –Force
相关资源
各类问题解决杂记录
应急响应入门到精通
[ 提升篇 ] 钓鱼实战系列
vulnhub 综合靶场通关之路
[ 问题解决篇 ] 解决windows虚拟机安装vmtools报错-winserver2012安装vmtools及安装KB2919355补丁 (附离线工具)