我昨天安装了 PowerShell 4,从那时起,我就收到错误“术语‘Invoke-Sqlcmd’未被识别为 cmdlet、函数的名称”。
几个月来,此功能一直运行良好,直到 PowerShell 4 发布。
我安装了 SQL 2012 SP1 和 CU7。VS 2013 和 .NET 4.5.1。据我所知,我拥有 PowerShell 所需的所有最新内容。
我怎样才能修复这个问题?
Invoke-Sqlcmd:术语“Invoke-Sqlcmd”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。第 1 行,字符:1
答案1
我在未安装 SQL Server Management Studio 的情况下让invoke-sqlcmd 工作时也遇到了类似的问题。我发现运行invoke-sqlcmd 所需的最低限度(没有 SSMS)是三个文件:
适用于 SQL Server® 2008 R2 的 Microsoft® Windows PowerShell 扩展
Microsoft® SQL Server® 2008 R2 共享管理对象
SQL Server® 2008 R2 的 Microsoft® 系统 CLR 类型
在此处找到:http://www.microsoft.com/en-us/download/details.aspx?id=16978
然后打开 Powershell 并输入:
set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\installutil
installutil -i "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSProvider.dll"
installutil -i "C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSSnapins.dll"
Add-PSSnapin -Name SqlServerProviderSnapin100
Add-PSSnapin -Name SqlServerCmdletSnapin100
如果您安装了 64 位文件,则需要运行:
set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\installutil
installutil -i "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSProvider.dll"
installutil -i "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\Redist\Microsoft.SqlServer.Management.PSSnapins.dll"
Add-PSSnapin -Name SqlServerProviderSnapin100
Add-PSSnapin -Name SqlServerCmdletSnapin100
另外,请确保您使用的 Powershell 版本正确,因为 64 位版本的 Powershell 不能使用 32 位版本的“Microsoft.SqlServer.Management.PSSnapins.dll”和“Microsoft.SqlServer.Management.PSProvider.dll”