Register-ScheduledJob和Write-Host

时间:2012-09-26 20:19:25

标签: job-scheduling powershell-v3.0

我正在使用Register-ScheduledJob在执行脚本的后台作业中的powershell中注册作业。此脚本包含一些命令,如Get-Process和Write-Host命令。和...

Altough每个命令都在结果中执行我没有看到来自写主机的输出(get-Process没问题)

也许有人知道为什么?

2 个答案:

答案 0 :(得分:1)

写入主机写入主机,该主机是运行脚本的应用程序(例如PowerShell.exe),因此它显式输出到屏幕,并且当您在非运行时没有任何操作互动环境。您永远不应该使用它来输出要收集的数据,仅用于轻量级调试或在交互式脚本中打印到屏幕。

您通常应该将写入输出用于要作为输出收集的数据。

虽然您也可以使用调试/警告/错误输出(由作业收集,但未在常规输出中显示)。

答案 1 :(得分:0)

非常感谢你。写输出有帮助。

另外我在过去几天发现并可能对其他人有所帮助:如果你开始预定的后台工作并且在这个工作中启动PowerShell脚本,如下所示:

Register-ScheduledJob -Name1 temp -ScheduledJobOption $option -ScriptBlock {
D:\scprit.ps1
}

你的工作永远不会结束,因为在完成脚本后,PowerShell窗口仍然打开。因此,您必须在scriptblock中添加exit:

Register-ScheduledJob -Name1 temp -ScheduledJobOption $option -ScriptBlock {
D:\scprit.ps1
Exit-PSSession
}