Как мне перейти к перемещению компонентов служб на новый сервер? - PullRequest
0 голосов
/ 06 октября 2009

Мы переносим наш тестовый сервер на новый ящик, и мне нужно перенести все наши компоненты, которые находятся в Службах компонентов, на новый ящик. У нас есть все файлы COM DLL, расположенные в подпапках в каталоге COM на сервере, и мы хотим скопировать весь этот каталог и зарегистрировать все приложения в службах компонентов, как они есть. У них должны быть одинаковые учетные данные и все.

Я могу использовать материал COMAdminCatalog и автоматизировать экспорт и установку приложений (экспортирует CAB-файл), но это скопирует библиотеки DLL и все остальное, и мы этого не хотим, потому что они не вернут их правильное место. Хотя, если бы я мог вытащить каталог, в котором они находились, и затем указать этот каталог при установке, это было бы хорошо. Я не могу понять, как получить каталог DLL, хотя. А что, если есть две библиотеки, как это будет работать?

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 29 мая 2015

Я преобразовал вышеуказанные шаги в скрипт Powershell, который можно использовать для автоматизации и т. Д., Если у вас есть много компонентов для перемещения:

New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT;

$class = "MyObject.MyClassName";
$clsid = (gp HKCR:\$class\Clsid).'(default)';
$path = $(gp HKCR:\CLSID\$clsid\InprocServer32).'(default)';

echo "Component path = $path";

Вам необходимо установить $ class как имя объекта, который, как вы знаете, существует в компоненте, который вы хотите переместить.

0 голосов
/ 10 октября 2009

Вы можете экспортировать, а затем установить на новую машину, а затем перерегистрировать все библиотеки DLL. Это обновит детали каждого COM-пакета на вашем сервере COM +. Вы можете найти местоположение dll, посмотрев его в реестре.

Если ваш COM-объект

Project.Object

Взгляните на

HKEY_CLASSES_ROOT \ Project.Object \ CLSID \

получите значение по умолчанию, затем найдите

HKEY_CLASSES_ROOT \ CLSID ** YOURCLSID ** \ InprocServer32

Этот ключ даст вам полный путь к DLL. Удалите все эти библиотеки и зарегистрируйте (используя regsrv32) все библиотеки в том месте, где вы хотите их.

Должно дать вам место для начала.

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