windows-server-2008 – 如何在powershell脚本中打印出有关任务计划程序的信息?

前端之家收集整理的这篇文章主要介绍了windows-server-2008 – 如何在powershell脚本中打印出有关任务计划程序的信息?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在Power Shell脚本中从本地计算机打印任务计划程序中的信息,以便其他用户也可以打印出这些信息,而不必访问任务计划程序.我需要打印出来的脚本

>名字,
>状态,
>触发器,
>下次运行时间,
>上次运行时间,
>上次运行结果,
>作者,
>创建.

我可以打印出有关名称,下次运行时间和上次运行时间的信息,但是当我运行脚本时,其余部分将不会打印出来.

我已经在我的脚本上有了一点开始,并将字段缩小了.

  1. $schedule = new-object -com("Schedule.Service")
  2. $schedule.connect()
  3. $tasks = $schedule.getfolder("\").gettasks(0)
  4.  
  5. $tasks | select Name,Status,Triggers,NextRunTime,LastRunTime,LastRunResult,Author,Created | ft
  6.  
  7. foreach ($t in $tasks)
  8. {
  9. foreach ($a in $t.Actions)
  10. {
  11. $a.Path
  12. }
  13. }

任何帮助或建议将不胜感激.

下面是我正在寻找的截图以及哪些字段不打印数据:

这可以稍微清理一下(即映射LastRunResult代码).如果您需要帮助,请告诉我.触发器有点困难,因为我不认为在GUI中查看任务时看到的简单英语表示存在于COM对象中.我相信它必须从存储在RegisteredTask.Definition.Triggers中的TriggerCollection构建
  1. $sched = New-Object -Com "Schedule.Service"
  2. $sched.Connect()
  3. $out = @()
  4. $sched.GetFolder("\").GetTasks(0) | % {
  5. $xml = [xml]$_.xml
  6. $out += New-Object psobject -Property @{
  7. "Name" = $_.Name
  8. "Status" = switch($_.State) {0 {"Unknown"} 1 {"Disabled"} 2 {"Queued"} 3 {"Ready"} 4 {"Running"}}
  9. "NextRunTime" = $_.NextRunTime
  10. "LastRunTime" = $_.LastRunTime
  11. "LastRunResult" = $_.LastTaskResult
  12. "Author" = $xml.Task.Principals.Principal.UserId
  13. "Created" = $xml.Task.RegistrationInfo.Date
  14. }
  15. }
  16.  
  17. $out | fl Name,NextRuNTime,Created

猜你在找的Windows相关文章