PowerShell 4 安装后 Invoke-Sqlcmd 不起作用

PowerShell 4 安装后 Invoke-Sqlcmd 不起作用

我昨天安装了 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”

相关内容