Регистрация ActiveX, решение проблемы админских прав
Столкнулся с проблемой автоматической установки ActiveX из 1С — регистрация должна быть под админскими правами.
Покопавшись в документациях, написал приложение.
Данное консольное приложение принимает в качестве параметров 1. Имя регистрируемое компоненты 2. Имя пользователя 3. Пароль 4. Домен (если нужно) и регистрирует компоненту.
Пример запуска из внешней обработки;
ИмяВременногоФайлаZIP = ПолучитьИмяВременногоФайла("zip");
ДвоичныеДанные = ПолучитьМакет("Архив");
ДвоичныеДанные.Записать(ИмяВременногоФайлаZIP);
// Извлекаем из ZIP-архива все сохраняем во временный файл
ЧтениеZIP = Новый ЧтениеZipФайла(ИмяВременногоФайлаZIP,);
Каталог = КаталогВременныхФайлов()+ "_aMap";
ЧтениеZIP.ИзвлечьВсе(Каталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
ЧтениеZIP.Закрыть();
ЗапуститьПриложение(Каталог + "
eg.exe --component.dll --user --pass");
Предупреждение("Была установлена новаябиблиотека Программу следует перезагрузить");
ЗавершитьРаботуСистемы();
То есть всё равно — само собой — имя пользователя и пароль администратора?
(1) Franco, Да, имя и пароль администратора. У нас он одинаковый на всех компьютерах.
исходники будут?
Неплохое решение, а зачем тебе исходники там же усе описанно, берешь да встраиваешь.
Регистрирует именно АктивИкс или ДотНет-компоненты?
(5) artbear, Регистрирует activex и связанные сборки, все должно быть упаковано в архив и помещено в макет
ОФФ. подписался
запустить неизвестное приложение без исходников на боевом сервере?
кто последний в очереди будет? я за вами…
(8) iov, это net приложение, при желании можете посмотреть код в рефлекторе. Не вижу проблем
У меня дает ошибку «неверное имя или пароль». Отсюда вопрос: нужно ли указывать имя домена в имени пользователя?
И, если да, то в каком виде? И как передать служебные символы в пароле?
Сейчас только заметил, что домен указывается 4-м параметром… Но это не помогло — ругается так же.
Разобрался — не нужно указывать «—» перед аргументами — так выполнилось без ошибок. НО!
Компонента все равно не регистрируется. Подозреваю, проблема в том, что компонента 32-битная, а регистрируется в 64-битной среде.
Нужно вызывать в таком случае %SystemRoot%SysWoW64
egsvr32, а не %SystemRoot%System32
egsvr32.
Автор, можно ли как-то устранить данный момент?
Коллеги, может кто подскажет, как автоматически регистрировать ActiveX в таком случае?
Имя файла, совпадающее с консольной командой REG, считаю неудачным. Что-нибудь вроде xregsvr было бы уместнее.