使用Powershell查询schtasks


8

在Windows7计算机上,我尝试使用schtasks.exe运行查询以查看所有计划的任务

很好,但我也想使用类似的方法过滤结果集

schtasks /query | where { $_.TaskName -eq "myTask" } 

问题是我不是这个schtasks返回格式正确的列表,以供where函数工作。

我也尝试过:

schtasks /query /FO LIST
schtasks /query | format-list | where ....

那些也不起作用。

什么是使用Win7在本地计算机上查询schtask并能够过滤它们的最佳方法


里面的反斜杠是什么?我相当确定这不是schtasks期望的结果,而是正斜杠。
乔伊

哈!你是对的。我已在上面更正了它
jdiaz 2010年

Answers:


8

您可以尝试使用schtasks,这将使您无法解析文本。这几乎总是容易出错,并且绝对比获取命令输出要困难得多。

PowerShellPack中恰好有一个TaskScheduler模块。安装PowerShell包后,要获取所有计划的任务,请使用:

Import-Module TaskScheduler
Get-ScheduledTask -Recurse

由于这些是真实对象,因此要查找特定名称的任务,可以使用:

Get-ScheduledTask -Recurse |  Where-Object { $_.Name -like "*Task*"}

通常,您会发现PowerShell社区已经花了很多精力来使用命令行,例如schtasks,并将它们变成易于使用的cmdlet,例如Get-ScheduledTask。

也可以看看:

使用TaskScheduler模块发送自动电子邮件

希望这可以帮助


1
如果您使用的是Win2k8盒(或Vista / W7),则效果很好。不幸的是,它不适用于W2k3服务器(在我的环境中这仍然很常见)。
Mike Shepard

@MikeShepard如果要购买新玩具,则必须停止使用11岁的操作系统。
Ryan Ries 2014年

1
那是我职业的故事。:-(
Mike Shepard

2

如果您不需要在Powershell中执行此操作,则可以执行以下操作

schtasks / query | findstr / i“我的任务”

ps版本
schtasks / query | ?{$ _-like'mytask'}


是否有使用PS创建,查询和删除任务的完整源代码示例?
Kiquenet 2012年

2

这是我写的有关此操作的博客文章。本质上,我将/ FO LIST / V的输出写入文件中,然后使用import-csv将其作为对象重新导入


2
schtasks /query /fo csv /v|convertfrom-csv
Joey 2010年

这很整洁,但仍然不容易查询
jdiaz 2010年

约翰尼斯:你是对的,但我真的(真的)不喜欢带有嵌入式空格/分号/斜杠的属性。jdiaz:什么不可查询?我发布的脚本和Johannes的修订都返回了带有属性的本地Powershell对象。它们应该与任何其他Powershell实体一样可查询。
Mike Shepard 2010年

1
确实-它们是可查询的... schtasks /query /fo csv /v /s "myserver" | convertfrom-csv | Select TaskName, "Last Run Time", Author | ? {$_.Author -notmatch "microsoft|N/A|Author"}将为您提供所有自定义的计划任务。
SliverNinja-MSFT 2014年

2

您可以尝试:

schtasks /query /FO CSV | ConvertFrom-CSV | Where { $_.TaskName -eq "myTask" } 

诀窍是先将输出转换为CSV,然后再转换回Powershell对象。


0

您想得太多了。

所需的命令行schtasks / query / s%computername%| FIND / I“%name_of_task%”

示例schtasks / query / s server01 | FIND / I“ schedule”


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.