You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Automation Runbook执行失败:‘Invoke-Sqlcmd’ cmdlet未识别求助

解决Azure Automation Runbook中‘Invoke-Sqlcmd’未识别的问题

这个问题我碰到过好几次,根源很明确——你的Azure Automation账户里还没安装包含Invoke-Sqlcmd的SqlServer模块,默认情况下Automation是不带这个模块的。下面是具体的解决步骤:

1. 安装SqlServer模块到你的Azure Automation账户

  • 登录Azure门户,找到你用来运行维护Runbook的Automation账户
  • 在左侧导航栏的「共享资源」分类下选择模块
  • 检查模块列表里是否有SqlServer:
    • 如果没有,点击页面顶部的浏览库,在搜索框输入SqlServer,找到对应的模块后点击导入,等待导入完成(这个过程可能需要几分钟)
    • 如果已经存在,建议检查版本,尽量选择较新的稳定版本(旧版本可能存在兼容性问题),必要时点击更新按钮升级模块

2. 在Runbook中显式导入模块(可选但推荐)

虽然Azure Automation会自动尝试加载所需模块,但为了避免潜在的加载顺序问题,建议在Runbook的开头添加一行导入命令:

Import-Module SqlServer -Force

3. 替代方案:使用Az.Sql模块的命令(如果适用)

如果你已经在使用Az模块集,也可以考虑用Invoke-AzSqlDatabaseCommand来替代Invoke-Sqlcmd,这个命令属于Az.Sql模块(默认可能已安装在Automation账户中),用法示例:

Invoke-AzSqlDatabaseCommand -ResourceGroupName "你的资源组名" -ServerName "你的SQL服务器名" -DatabaseName "目标数据库名" -Query "你的维护SQL脚本"

不过要注意,这个命令的参数和Invoke-Sqlcmd略有不同,需要调整你的脚本适配。

4. 验证解决效果

完成模块安装/导入后,重新启动Runbook执行,应该就不会再出现‘Invoke-Sqlcmd’未识别的错误了。

另外补充一点:旧的SQLPS模块已经被微软弃用,官方推荐使用SqlServer模块,所以不要去安装SQLPS模块,避免混淆。

内容的提问来源于stack exchange,提问作者RuSSe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:18:08