Powershell脚本从记事本中获取任务名称,并在Windows任务计划程序中查找它的状态

时间:2016-06-10 08:00:52

标签: powershell

我需要一个PowerShell脚本,其中需要读取文本文件中列出的任务,并且需要从Windows任务调度程序获取这些任务的状态并输出到csv文件。

我可以使用Get-Content cmdlet读取内容。但是Get-ScheduledTask抛出的错误是它无法识别为有效的cmdlet。

请帮我解决这个问题,因为我是PowerShell的新手。

Get-ScheduledTask任务| Get-ScheduledTaskInfo | Select-Object TaskName,LastTaskResult | Export-Csv -NoTypeInformation -Path D:\ First \ one.csv

我有一个名为tasks的txt文件,其中包含要迭代并列出到csv文件的任务列表

1 个答案:

答案 0 :(得分:0)

这个适用于我:

$tasks = Get-Content -Path "C:\Users\Administrator\Desktop\Tasks.txt"
Get-ScheduledTask -TaskName $tasks | Get-ScheduledTaskInfo | Select-Object TaskName, LastTaskResult | Export-Csv C:\Users\Administrator\Desktop\Tasks.csv -NoTypeInformation

Txt文件采用以下格式:

Task 1
Task 2
Task 3

我在Windows 8.1的PS 4中尝试过,在以前版本的Windows(例如Windows 7 / Windows Server 2008 R2)中没有此cmdlet。

对于之前的版本,您可以使用此great module。您应该在Modules文件夹中提取整个文件夹,例如。到C:\Windows\System32\WindowsPowerShell\v1.0\Modules,然后您就可以使用模块中的Get-ScheduledTask

Import-Module TaskScheduler
Get-Content -Path "C:\Users\Administrator\Desktop\Tasks.txt" | ForEach-Object { Get-ScheduledTask -Name $_ | Select-Object Name,LastRunTime } | Export-Csv C:\Users\Administrator\Desktop\Tasks.csv -NoTypeInformation

其他解决方案是尝试使用schtasks.exeSchedule.Service COM object,但我认为模块TaskScheduler对您来说更容易。