Windows-Server-2008
如何在 powershell 腳本中列印有關任務計劃程序的資訊?
我正在嘗試
Task Scheduler
在腳本中從本地電腦列印出資訊,PowerShell
以便其他使用者也可以列印出此資訊而不必訪問Task Scheduler
. 我需要腳本列印出來
- 姓名,
- 地位,
- 觸發器,
- 下次執行時間,
- 上次執行時間,
- 上次執行結果,
- 作者,
- 創建的。
我可以列印出有關名稱、下次執行時間和上次執行時間的資訊,但是當我執行腳本時,其他資訊不會列印出來。
我已經對我的劇本有了一點點的了解,並且把這些領域搞定了。
$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 對像中。我相信它必須從
TriggerCollection
儲存的RegisteredTask.Definition.Triggers
$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,Status,NextRuNTime,LastRunTime,LastRunResult,Author,Created