windows 从Powershell中的计划任务获取更多信息

92vpleto  于 7个月前  发布在  Windows
关注(0)|答案(1)|浏览(69)

有没有一种方法可以从PowerShell中查看所有的ScheduledTask属性,而不必打开用户不太友好的taskschd。
我使用New-ScheduledTaskRegister-ScheduledTask成功创建了作业,但无法查看在New-ScheduledTask中使用的参数,如Action、Trigger、Principal和Settings
下面是我设法得到的:

Get-ScheduledTask -TaskName "test22 BAM-AT" -Verbose

TaskPath                                       TaskName                          State
--------                                       --------                          -----
\                                              test22 BAM-AT                     Ready

Get-ScheduledTaskInfo -TaskName "test22 BAM-AT" -Verbose

LastRunTime        : 2/23/2021 1:44:44 PM
LastTaskResult     : 0
NextRunTime        : 2/23/2021 4:00:00 PM
NumberOfMissedRuns : 0
TaskName           : test22 BAM-AT
TaskPath           :
PSComputerName     :

字符串

dnph8jn4

dnph8jn41#

Cim的基本ScheduledTasks模块并没有预先公开这种级别的细节,但是,您可以使用它的另一个小工具Export-ScheduledTask来获取XML任务定义,并将其作为对象进行解析。
范例:

$TaskXML = [XML]((Get-ScheduledTask)[0] |Export-ScheduledTask)
$TaskXML.Task.Triggers

字符串
显然,你可能不得不四处打探以提取你想要的信息等。
Export-ScheduledTask返回在另一个系统上导入任务所需的所有XML,因此它应该包含所有细节,只需要提取XML即可。

更新地址注解:

我显然没有意识到从Get-ScheduledTask返回和访问的信息更多。然而,Select-Object(上面的select *)不需要访问这些信息。这样做会禁用返回的对象,这可能会影响它的二次使用。在Select之后返回的对象是[PSCustomObjects],而不是典型的[CimInstance]
感谢@CraftyB的评论,这里有一些没有不必要的Select-Object的例子:

(ScheduledTask -TaskName "test22 BAM-AT").Actions


或:

(ScheduledTask -TaskName "test22 BAM-AT").Triggers


根据需要引用属性。
如果不做更多的工作,我不清楚导出XML与仅引用属性相比有什么优点或缺点。可能信息在一种方法中可用,而在另一种方法中不可用。

相关问题