Как я могу вызвать интерфейс командной строки Twilio из шага задания SQL Server?

avatar
Jim
1 июля 2021 в 21:06
104
1
0

В моей системе установлен интерфейс командной строки Twilio, и я изменил политику выполнения сценариев, чтобы разрешить его выполнение. Я пытаюсь вызвать twilio api:core:messages:create из шага powershell задания базы данных, работающего от имени меня. Команда работает безупречно из окна powershell, но в задании SQL Server я получаю:

'Термин 'twilio' не распознается как имя командлета, функции, файла сценария или исполняемой программы. Проверьте правильность написания имени или, если путь был включен, проверьте правильность пути и повторите попытку. '

Есть предложения? Что я упускаю?

Для дальнейшего уточнения согласно Дейлу: я создал задание агента SQL Server с помощью агента SQL Server, и у него есть один шаг типа Powershell с этим кодом:

twilio api:core:messages:create --from "+1XXXXXXXXXX" --to "+1XXXXXXXXXXXX" --body "Twilio Test"

Инструкция работает нормально при прямом запуске в Powershell, но выдает указанную выше ошибку при запуске задания.

Спасибо!

Источник
Jim
1 июля 2021 в 21:44
0

Вот оно: twilio api:core:messages:create --from "+1XXXXXXXXXX" --to "+1XXXXXXXXXX" --body "Тест Twilio" с номерами отправителя и получателя и телом сообщения. Он попадает в powershell, но затем выдает указанную выше ошибку.

mklement0
1 июля 2021 в 22:55
0

Похоже, задание SQL Server видит другую переменную среды PATH, чем ваши интерактивные сеансы. (a) Либо добавьте каталог dir. в котором twilio находится на машинном уровне PATH переменной или (b), что менее предпочтительно, использовать полный путь задания путь включает пробелы, "..."-заключить его в кавычки и добавить перед &, оператор вызова )

Charlieface
1 июля 2021 в 23:42
0

+1 за использование Powershell, а не за эти ужасные процедуры sp_OA. Я думаю, вам нужно Install-Module -Name twilio-powershell-module, возможно, добавить -AllUsers

Ответы (1)

avatar
Venkataraman R
2 июля 2021 в 04:00
0

Задание агента SQL Server использует SQLPS.exe вместо реальной оболочки PowerShell, установленной на компьютере.

Вам необходимо вызвать Powershell с помощью командной строки, как показано на изображении ниже. Справочная статья

Calling powershell through command prompt

Jim
2 июля 2021 в 13:40
0

Если я сделаю это.. cd "C:\Windows\System32\WindowsPowerShell\v1.0" powershell.exe "twilio api:core:messages:create --from '+1XXXXXXXXXX' --to '+1XXXXXXXXXX' --body 'Twilio Test'» Это не ошибка, но и не работает. Я никогда не получаю текст.