【问题标题】:How can I call the Twilio CLI from a SQL Server job step?如何从 SQL Server 作业步骤调用 Twilio CLI?
【发布时间】:2021-09-13 22:07:43
【问题描述】:

我的系统上安装了 Twilio CLI,我更改了脚本执行策略以允许它运行。我正在尝试从以我身份运行的数据库作业 powershell 步骤中调用 twilio api:core:messages:create。该命令在 powershell 窗口中完美运行,但在我得到的 SQL Server 作业中:

“'twilio' 一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。'

有什么建议吗?我错过了什么?

按照 Dale 的说法进一步澄清:我使用 SQL Server 代理创建了一个 SQL Server 代理作业,并且它有一个步骤为使用此代码键入 Powershell:

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

该语句直接在Powershell中运行正常,但在触发作业时出现上述错误。

谢谢!

【问题讨论】:

  • 就是这样:twilio api:core:messages:create --from "+1XXXXXXXXXX" --to "+1XXXXXXXXXX" --body "Twilio Test" 带有来自和目的地号码以及消息身体。它会命中 powershell,但随后会产生上述错误。
  • 听起来 SQL Server 作业看到的 PATH 环境变量与您的交互式会话不同。 (a) 添加目录。其中twilio 驻留在机器级 PATH 变量或(b),不太优选,使用作业中twilio 可执行文件的完整路径 (如果路径包含空格,"..."-引用它并在前面加上&call operator
  • +1 用于使用 Powershell 而不是那些糟糕的sp_OA 程序。我认为您需要Install-Module -Name twilio-powershell-module 或者添加-AllUsers

标签: sql-server powershell twilio


【解决方案1】:

SQL Server 代理作业使用 SQLPS.exe,而不是机器中安装的实际 powershell。

您需要使用命令提示符调用 Powershell,如下图所示。 Reference article

【讨论】:

  • 如果我这样做.. cd "C:\Windows\System32\WindowsPowerShell\v1.0" powershell.exe "twilio api:core:messages:create --from '+1XXXXXXXXXX' --到 '+1XXXXXXXXXX' --body 'Twilio Test' “它不会出错,但它也不起作用。我从来没有收到过短信。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多