Azure WebJobs运行Powershell脚本,但Invoke-Sqlcmd在WebJob中失败。怎么修? 脚本在本地PowerShell ISE中工作,但在Azure Webjob中失败:
$result = Invoke-Sqlcmd -Query 'SELECT AlertLine FROM HR.AlertRecordsOpenInline;' `
-ServerInstance 'xxxxxxxx.database.windows.net' `
-Username 'xxxxx@xxxxxx' -Password 'xxxxxx' -Database 'xxxxxx'
foreach($item in $result){
[string]$Results += ($item.AlertLine)
}
$Results
WebJob运行详细信息输出:
[09/02/2016 16:09:00 > da15b0: SYS INFO] Status changed to Initializing
[09/02/2016 16:09:00 > da15b0: SYS INFO] Run script 'Invoke-Sqlcmd.ps1' with script host - 'PowerShellScriptHost'
[09/02/2016 16:09:00 > da15b0: SYS INFO] Status changed to Running
[09/02/2016 16:09:01 > da15b0: ERR ] Invoke-Sqlcmd : The term 'Invoke-Sqlcmd' is not recognized as the name of a
[09/02/2016 16:09:01 > da15b0: ERR ] cmdlet, function, script file, or operable program. Check the spelling of the
[09/02/2016 16:09:01 > da15b0: ERR ] name, or if a path was included, verify that the path is correct and try again.
[09/02/2016 16:09:01 > da15b0: ERR ] At D:\local\Temp\jobs\triggered\Invoke-Sqlcmd\ni4ywn1l.sgn\Invoke-Sqlcmd.ps1:1
[09/02/2016 16:09:01 > da15b0: ERR ] char:11
[09/02/2016 16:09:01 > da15b0: ERR ] + $result = Invoke-Sqlcmd -Query 'SELECT AlertLine FROM
[09/02/2016 16:09:01 > da15b0: ERR ] HR.AlertRecordsOpenInline; ...
[09/02/2016 16:09:01 > da15b0: ERR ] + ~~~~~~~~~~~~~
[09/02/2016 16:09:01 > da15b0: ERR ] + CategoryInfo : ObjectNotFound: (Invoke-Sqlcmd:String) [], Comma
[09/02/2016 16:09:01 > da15b0: ERR ] ndNotFoundException
[09/02/2016 16:09:01 > da15b0: ERR ] + FullyQualifiedErrorId : CommandNotFoundException
[09/02/2016 16:09:01 > da15b0: ERR ]
[09/02/2016 16:09:01 > da15b0: SYS INFO] Status changed to Success
已经搜索过但搜索过但是卡住了,不确定下一步该尝试什么。提前感谢您的帮助!
答案 0 :(得分:1)
Azure WebJobs环境中未安装SQLPS模块,我不知道安装其他模块的方法。您是否尝试过Azure Automation,如果它没有您需要的模块,您可以从库中添加自己的模块或安装模块。