我试图在Power
Shell脚本中从本地计算机打印任务计划程序中的信息,以便其他用户也可以打印出这些信息,而不必访问任务计划程序.我需要打印出来的脚本
>名字,
>状态,
>触发器,
>下次运行时间,
>上次运行时间,
>上次运行结果,
>作者,
>创建.
我可以打印出有关名称,下次运行时间和上次运行时间的信息,但是当我运行脚本时,其余部分将不会打印出来.
我已经在我的脚本上有了一点开始,并将字段缩小了.
$schedule = new-object -com("Schedule.Service") $schedule.connect() $tasks = $schedule.getfolder("\").gettasks(0) $tasks | select Name,Status,Triggers,NextRunTime,LastRunTime,LastRunResult,Author,Created | ft foreach ($t in $tasks) { foreach ($a in $t.Actions) { $a.Path } }
任何帮助或建议将不胜感激.
下面是我正在寻找的截图以及哪些字段不打印数据:
这可以稍微清理一下(即映射LastRunResult代码).如果您需要帮助,请告诉我.触发器有点困难,因为我不认为在GUI中查看任务时看到的简单英语表示存在于COM对象中.我相信它必须从存储在RegisteredTask.Definition.Triggers中的TriggerCollection构建
$sched = New-Object -Com "Schedule.Service" $sched.Connect() $out = @() $sched.GetFolder("\").GetTasks(0) | % { $xml = [xml]$_.xml $out += New-Object psobject -Property @{ "Name" = $_.Name "Status" = switch($_.State) {0 {"Unknown"} 1 {"Disabled"} 2 {"Queued"} 3 {"Ready"} 4 {"Running"}} "NextRunTime" = $_.NextRunTime "LastRunTime" = $_.LastRunTime "LastRunResult" = $_.LastTaskResult "Author" = $xml.Task.Principals.Principal.UserId "Created" = $xml.Task.RegistrationInfo.Date } } $out | fl Name,NextRuNTime,Created