我正在使用Register-ScheduledJob在执行脚本的后台作业中的powershell中注册作业。此脚本包含一些命令,如Get-Process和Write-Host命令。和...
Altough每个命令都在结果中执行我没有看到来自写主机的输出(get-Process没问题)
也许有人知道为什么?
答案 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
}