Зарегистрируйте Powershell SnapIn для конкретной версии Powershell

Я пытаюсь запустить сценарий командной консоли Exchange через управляемый код. Наша версия PowerShell - версия 4. Я пытаюсь использовать runspaceConfiguration.AddPSSnapin() способ добавить обмен SnapIn Microsoft.Exchange.Management.Powershell.E2010Однако эта строка не работает, давая:

никакие оснастки не были зарегистрированы для Powershell версии 4.

Быстрый Get-PSSnapIn -registered показывает, что SnapIn установлен, но зарегистрирован в PS версии 1.

В regEdit я нашел раздел реестра для оснастки для PowerShell v1, использовал функцию экспорта для сценария ключа, изменил целевую версию на 4 и запустил команду экспорта, которая, как и ожидалось, создала новый ключ '4' в PowerShell., с деталями оснастки, скопированными поперек. Однако я все еще получаю "никакие оснастки не были зарегистрированы для Powershell версии 4.", хотя ключ есть в реестре.

Что еще я должен сделать, чтобы зарегистрировать оснастку в PowerShell версии 4?

Спасибо за ваше время.

1 ответ

Решение

Вы правы в том, что это проблема сборки 32/64 бит. После того, как я установил целевую сборку на x64 в VS и перераспределил, все волшебным образом, казалось, работало нормально. Сообщение об ошибке, касающееся версий Powershell, в данном случае представляет собой крупную красную сельдь.

Другие вопросы по тегам