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

92vpleto  于 2023-11-21  发布在  Windows
关注(0)|答案(1)|浏览(144)

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

  1. Get-ScheduledTask -TaskName "test22 BAM-AT" -Verbose
  2. TaskPath TaskName State
  3. -------- -------- -----
  4. \ test22 BAM-AT Ready
  5. Get-ScheduledTaskInfo -TaskName "test22 BAM-AT" -Verbose
  6. LastRunTime : 2/23/2021 1:44:44 PM
  7. LastTaskResult : 0
  8. NextRunTime : 2/23/2021 4:00:00 PM
  9. NumberOfMissedRuns : 0
  10. TaskName : test22 BAM-AT
  11. TaskPath :
  12. PSComputerName :

字符串

dnph8jn4

dnph8jn41#

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

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

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

更新地址注解:

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

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


或:

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


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

展开查看全部

相关问题