我们最近开始使用 SQL Server 2012 SP3 并使用 PowerShell 脚本构建 SQL Server 2012。我们的自动化过程需要在一个数据库上运行多个数据库脚本,在Invoke-Sqlcmd
我发现这个问题之前,我发现它非常可靠。
当我Invoke-sqlcmd
在最近安装了 SQL 服务器的系统上以 PowerShell 的调试模式使用一组适当的参数运行时,我没有问题。
PowershellCommand:调用-Sqlcmd -InputFile $sStrJBSPExecRolePath -ServerInstance $sStrSQLName -ErrorAction Stop
但是,当我在重建同一台服务器后通过 PowerShell 自动化脚本执行相同的查询时,我最终得到以下错误
术语“Invoke-Sqlcmd”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。
我在网上做了很多研究建议导入 SQLPS 等,所以为了测试我在我的脚本中添加了以下命令
get-pssnapin -Registered
Import-Module “sqlps” -DisableNameChecking**
即使将上述内容添加到脚本中,我仍然会遇到同样的错误。但是当我手动运行相同的脚本时,它运行得非常好。我不明白出了什么问题。
PowerShell 自动化脚本 - 此脚本安装 .Net Framework 3.5、SQL Server 2012、SQL Server 2012 SP3,然后加载我用来更改 SQL 设置(例如 SQL 的最大内存限制)的 SMO 程序集。