我有一个手动例程(涉及计划任务 GUI),用于创建在以下情况下触发的计划任务:来自事件日志的给定事件集. 我想使该过程自动化使用 Powershell(或者使用其他脚本工具)我发现了一个小技巧附有一些示例以及新计划任务触发器。
不幸的是,文档没有显示为某些特定事件 ID 创建任务的任何视图。它仅列出了一个特定的非时间相关触发器 - -AtLogOn
。
我该如何注册这样的任务?例如可以Get-Eventlog
使用吗?新计划任务提到了“触发对象”,但没有提到如何创建它们以及文档触发器不再更新,并且不包含任何 PowerShell 相关信息。 的文档New-ScheduledTaskTrigger
似乎正是我想要的:
New-ScheduledTaskTrigger cmdlet 创建并返回一个新的计划任务触发器对象。
但正如我上面提到的,文档中没有提到任何有关事件 ID 的内容。
答案1
我发现离开,尽管不是严格使用 PowerShell,而是 XML 和schtask
命令的组合。信息取自以下 Microsoft 博客:从 Windows 事件触发 PowerShell 脚本。
对于脚本的用户
该脚本的目标用户现在可以在终端中运行此脚本:
schtasks /create /TN "My Super Duper Tasks\The task id 101" /XML my-task.xml
这假定脚本已安装在指定区域,例如C:\my-script.bat
,否则 Windows 将无法运行任何内容。
对于剧本作者来说
以下步骤当然仅适用于作者脚本,而不是其预期用户!
- 像平常一样手动创建触发器(例子)。
- 右键单击触发器并将其导出到 XML 文件。
- 右击扳机并删除它(稍后将根据 XML 重新创建)。
Principals
删除 XML 文件中的和部分RegistrationInfo
,因为它们包含其他计算机上不存在的有关用户 ID 的硬编码信息。将使用 重新创建schtasks
。- 运行
schtask
上面给出的命令(针对用户)