【发布时间】:2019-10-25 08:29:34
【问题描述】:
我想从 SQL Server 代理作业运行 .exe。 .exe 托管在与我的 SQL Server 代理不同的位置。 我在 MSSMS 的 Step 属性中将我的工作定义为 PowerShell 类型,并定义了以下命令:
Invoke-Command -ComputerName "myserver" -ScriptBlock {
try
{
C:\...\......\myexe.exe 2>&1 -ErrorAction Stop
}
catch
{
Exit 1
}
}
其中 myexe.exe 是托管在远程服务器驱动器中的可执行文件。 当我这样做时,我收到以下错误:
Message
Unhandled exception. System.Exception: A Forced Exception for testing purpose
At line:3 char:13
+ $res= & C:\........... ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Unhandled excep...testing purpose:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
.....
这是在我的 .exe 中引发的错误,但实际上我希望作业在成功时出错。
所以问题是,如何处理抛出到 myexe.exe 文件中的异常并将其捕获到我的 SQL 代理作业中? 我希望 sql 代理作业出错并且在输出中写入我抛出的异常消息。
非常感谢您的帮助
【问题讨论】:
标签: powershell exception invoke-command sql-agent-job sql-agent