使用 powershell 自动 SQL 安装后调用 sqlcmd 失败

invoke-sqlcmd failing after Automated SQL install with powershell

我正在使用 Powershell 4 安装 SQL 2014。一切正常,除了最后我有一个函数 运行 来自 .sql 的脚本使用 invoke-sqlcmd. 文件。我收到以下错误:

"The term 'invoke-sqlcmd' is not recognized as the name of a cmdlet, function, script file..."

如果我尝试导入 sqlps 模块,我得到:

The specified module 'sqlps' was not loaded because no valid module file was found in any module directory.

但更重要的是。如果我打开一个单独的 PowerShell 终端,它在那里工作。 :/ 并在初始终端中继续失败。

我正在尝试理解为什么会这样,因此非常感谢您提供任何帮助。我想避免编写一次重启脚本。

谢谢, 旦

现有电源shell 会话不知道 Sql 刚刚安装的模块。查看环境变量 $env:PSModulePath。将新 shell 的变量与现有变量进行比较,您应该会看到缺少的路径,例如 ...\Microsoft SQL Server0\Tools\PowerShell\Modules\.

要解决此问题,请修改路径以包含模块目录。像这样,

$env:PSModulePath += ";c:\some\path\to\sql"