Invoke-Sqlcmd недоступен от ISE, но работает на обычном хосте Powershell - PullRequest
2 голосов
/ 01 ноября 2010

У меня проблемы с Invoke-Sqlcmd

С обычной консоли powershell все нормально. Но я не могу использовать его с ISE.

Я могу подтвердить, что надстройка загружена

>Get-PSSnapin SqlServerCmdletSnapin100
Name        : SqlServerCmdletSnapin100
> add-PSSnapin SqlServerCmdletSnapin100
Add-PSSnapin : Cannot add ... SqlServerCmdletSnapin100 ... it is already added.

когда я пытаюсь его использовать

> Invoke-Sqlcmd
The term 'Invoke-Sqlcmd' is not recognized as the name of a cmdlet, function ...

Любые идеи о том, что проблема может быть?

Ответы [ 4 ]

0 голосов
/ 28 мая 2013

В одном скрипте, который потребовал SqlServerCmdletSnapin100, я использовал этот обходной путь:

$Name = SqlServerCmdletSnapin100
$Snapin = Get-PSSnapin -Name $Name -ErrorAction SilentlyContinue
if($Snapin -ne $null) {
    Remove-PSSnapin $Name 
}
Add-PSSnapin $Name
0 голосов
/ 01 ноября 2010

Вы также добавили оснастку провайдера:

Add-PsSnapin sqlserverprovidersnapin100

Оба требуются для полной функциональности.

0 голосов
/ 02 ноября 2010

Я не вижу поведения, которое вы видите. В 64-битной Windows оснастка SqlServerCmdletSnapin100 представляется только 64-битной. Есть ли шанс, что вы пытаетесь использовать его с 32-разрядного ISE? Проверьте строку заголовка. Если написано «Windows PowerShell 2.0 (x86)», значит, вы используете 32-разрядный ISE?

0 голосов
/ 01 ноября 2010

Не знаю. Я получаю другую ошибку, потому что у меня установлен ISE для работы с 4.0

Invoke-Sqlcmd: сборка смешанного режима построена для версии «v2.0.50727» среды выполнения и не может быть загружена в среде выполнения 4.0 без дополнительной информации о конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...