已关闭。此问题需要更多focused。当前不接受答案。
**想要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。
19天前关闭。
Improve this question
我有一个Powershell,每天早上在公司的服务器上运行(使用任务调度程序)。我注意到,当我手动运行它时,它偶尔会遇到错误并给出错误信息,但是由于我在早上别人进入办公室之前运行了它,所以我目前无法查看它是否正确运行。理想情况下,我希望它向我发送一封包含控制台日志文本的电子邮件(或者任何其他提供错误描述的东西,如果有人有更好的主意的话)。如果它只是将控制台日志保存到一个文本文件中,只要我以后可以检查它,我也会很好。有人能帮忙吗?
1条答案
按热度按时间68bkxrlz1#
没有看到你的脚本代码,很难确定。但是,你知道/熟悉内置的$Error变量吗?这可能就是你要找的。
https://bobcares.com/blog/powershell-error-clear/
$Error.Count -它检查当前列表中的错误数。
$Error[0] -它提供有关最新错误的信息。
$Error.Clear()-它从列表中删除所有错误。
您可以修改脚本,首先使用
$Error.Clear()
清除变量,然后运行代码,最后检查$Error.Count
,如果大于零,则检查$Error[0]
,并将错误记录到日志中。但同样,这完全取决于您的脚本代码。如果您的脚本正在执行外部/非PowerShell命令,那么我不确定这些错误是否会被捕获到这个变量中。
如果这还不能满足您的需求,那么请看看这个:
https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.host/start-transcript?view=powershell-7.3
Start-Transcript
-这会将写入控制台的所有内容记录到文件中。Stop-Transcript
-这显然会停止录制。示例
或指定您自己的路径
有用的参数
-NoClobber
将防止覆盖现有文件。-Append
将附加到现有文件。