Обнаружение ошибки из задания агента SQL, вызывающего .exe

Я хотел бы запустить .exe из задания агента SQL Server. .exe размещен в другом месте, чем мой агент SQL Server. Я определил свою работу как тип PowerShell в свойствах шага MSSMS и определил следующую команду:

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 будет ошибочным, и в выходных данных будет записано сообщение об исключении.

Большое спасибо за вашу помощь


person Fede    schedule 25.10.2019    source источник


Ответы (1)


Попробуйте сделать это:

$FilePath = "C:\...\.exe"
$ArgumentList = "your args if you need"
$consoleOutput = (cmd /s /c "$FilePath $ArgumentList")

Не используйте "-ErrorAction Stop"

person Alex R.    schedule 25.10.2019