Invoke-Sqlcmd не работает после установки PowerShell 4

4191
Russ

Я установил PowerShell 4 вчера, и с тех пор я получаю сообщение об ошибке «Термин« Invoke-Sqlcmd »не распознается как имя командлета, функция».

Это работало очень хорошо в течение нескольких месяцев до PowerShell 4.

У меня SQL 2012 SP1 установлен с CU7. VS 2013 с .NET 4.5.1. Насколько я могу судить, у меня есть все самое последнее, что требуется PowerShell.

Как я могу это исправить?

Invoke-Sqlcmd: термин «Invoke-Sqlcmd» не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку. В строке: 1 символ: 1

2

1 ответ на вопрос

1
AKISH

I had similar issues getting invoke-sqlcmd to work without installing SQL Server Management Studio. What I found is that the bare minimum (without SSMS) needed to run invoke-sqlcmd are three files:

Microsoft® Windows PowerShell Extensions for SQL Server® 2008 R2

Microsoft® SQL Server® 2008 R2 Shared Management Objects

Microsoft® System CLR Types for SQL Server® 2008 R2

found here: http://www.microsoft.com/en-us/download/details.aspx?id=16978

Then open up Powershell and enter:

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 

If you installed the 64-bit files you will need to run:

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 

Also, make sure you are using the correct version of Powershell as the 64-bit version of Powershell cannot use the 32-bit version of "Microsoft.SqlServer.Management.PSSnapins.dll" and "Microsoft.SqlServer.Management.PSProvider.dll"