Powershell 脚本是否可以从 Windows 2008 任务计划程序返回上次运行结果?

Powershell 脚本是否可以从 Windows 2008 任务计划程序返回上次运行结果?

我在 Windows 2008 Server 上设置了一个包含两个操作的计划任务。第一个操作是运行一个连接到 SQL 数据库并生成 XML 文件的应用程序。第二个操作是运行 Powershell 脚本。如果任务正确启动,脚本只会发送一封邮件,说明任务已启动,并附加数据提取应用程序创建的最新日志文件。

如果计划任务未启动(昨晚未启动,并且上次运行结果表明这是因为“此任务的一个实例已在运行”),则 Powershell 脚本不会触发,因此我们不会收到电子邮件。这很快表明任务尚未运行,但是如果任务未运行,我希望 Powershell 脚本从任务计划程序返回上次运行结果(尽管每次都这样也可以)。我是 Powershell 新手,对它只是略知一二,这可能吗,还是我在问不可能的事情?还有其他显而易见的方法吗?我是否应该只执行一个计划任务,该任务只有一个操作来运行运行应用程序的 Powershell 脚本,并触发包含日志/上次运行详细信息的通知电子邮件?

答案1

我已经找到了实现此目的的方法。首先,我发现了这篇文章监控 Windows 上计划任务的最后结果。其中包含一个用 Perl 编写的脚本,用于说明如何获取计划任务的上次运行结果。

我开始将其转换为 Powershell,这就是我得到的$taskName = "ETL" $result = (schtasks /query /FO LIST /V /TN $taskName | findstr "Result") $result = $result.substring(12) $lastResult = $result.trim()

然后我只需将该值插入电子邮件通知中。

相关内容