Проблема Powershell с использованием объектов управления репликацией .NET RMO - PullRequest
2 голосов
/ 16 сентября 2011

Я пытаюсь автоматизировать повторную инициализацию нескольких репликаций подписки, которые получают анонимно с сервера распространения. я работая над этим проектом в Powershell, и я считаю, что у меня 64-битная или 32-битная проблема с объектами управления репликацией .NET (РМО). Я загружаю сборки RMO и репликации. РМО сборка загружает версию MSIL, но сборка репликации только доступны в X86 или X64.

Проблема в том, что Класс Microsoft.SqlServer.Replication.TransSynchronizationAgent не является доступно, когда я запускаю свой скрипт на 64-битной машине. Когда я запускаю его на 32-битная машина работает нормально.

Когда я пытаюсь создать новый объект этого класса на 64-битной машине, я получить ошибку, что класс не зарегистрирован. Я посмотрел в реестр и класс зарегистрирован в GAC как в 64-битной, так и в 32-битные (Wow6432Node) локации.

Кто-нибудь когда-либо сталкивался с этой проблемой раньше? Есть идеи по исправлению?

Спасибо, Рики

1 Ответ

0 голосов
/ 26 января 2012

Недавно я столкнулся с похожей проблемой x64 и x32 бит с Powershell. Это связано с перенаправлением файловой системы Windows (подробнее здесь: http://practicaladmin.wordpress.com/2010/07/16/powershell-x64-and-filesystem-redirection/)

Если вы попытаетесь создать экземпляр 64-битного экземпляра Powershell из 32-битного пространства памяти (32-битный PID или PID, работающий в 32-битном режиме и т. Д.), Windows попытается «сделать все правильно» и запустит 32-битную версию Powershell (в папка syswow64 - да, 32-разрядная оболочка powershell находится в папке syswow64).

Попробуйте явно запустить 64-битную версию Powershell.exe на 64-битном компьютере по следующему пути:

%windir%\sysnative\WindowsPowerShell\v1.0\powershell.exe
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...