Sql server 无法在PS1文件中运行Invoke Sqlcmd,但可以在控制台上运行

Sql server 无法在PS1文件中运行Invoke Sqlcmd,但可以在控制台上运行,sql-server,powershell,sql-server-2008-r2,sqlcmd,Sql Server,Powershell,Sql Server 2008 R2,Sqlcmd,我目前正在使用SQL server 2008的计算机上,根据这个问题(),我安装了powershell管理单元以与SQL server交互 问题是,现在我已经安装了它,我可以像这样从命令行运行invokesqlcmd Invoke-Sqlcmd -inputfile "myTestFile.sql" -serverinstance '.\sql2008'; 但是如果我把这一行放在一个PS1文件运行中,并试着像这样运行它 powershell ./runSQLscript.ps1 我得到这个错

我目前正在使用SQL server 2008的计算机上,根据这个问题(),我安装了powershell管理单元以与SQL server交互

问题是,现在我已经安装了它,我可以像这样从命令行运行invokesqlcmd

Invoke-Sqlcmd -inputfile "myTestFile.sql" -serverinstance '.\sql2008';
但是如果我把这一行放在一个PS1文件运行中,并试着像这样运行它

powershell ./runSQLscript.ps1
我得到这个错误

术语“Invoke Sqlcmd”未被识别为cmdlet的名称, 函数、脚本文件或可操作程序。检查单词的拼写 名称,或者如果包含路径,请验证该路径是否正确,并且 再试一次。位于D:\TEMP\powershellTests\runSQLscript.ps1:1 char:14
+在PS1中调用Sqlcmd您需要
添加PSSnapin
并加载SQL管理单元


每个Powershell窗口都是一个尚未加载模块和管理单元的新环境。

在PS1中,您需要添加PSSnapin并加载SQL管理单元


每个Powershell窗口都是一个新的环境,其中尚未加载模块和管理单元。

在PS1文件中,您还需要
添加PSSnapin
SQL管理单元,以便Powershell知道在使用此函数之前加载它。@Bluecakes-是的,修复了它!请加上这个作为答案。好的,那么“添加管理单元”不是全局命令,并且与它运行的上下文相关?在PS1文件中,您还需要
添加PSSnapin
SQL管理单元,以便PowerShell知道在使用此函数之前加载它。@Bluecakes-是的,修复了它!请加上这个作为答案。好的,那么添加管理单元不是全局命令,并且与它运行的上下文相关?