Регистрация ActiveX, решение проблемы админских прав

Регистрация ActiveX, решение проблемы админских прав

Столкнулся с проблемой автоматической установки ActiveX из 1С — регистрация должна быть под админскими правами.

Покопавшись в документациях, написал приложение.

Данное консольное приложение принимает в качестве параметров 1. Имя регистрируемое компоненты 2. Имя пользователя 3. Пароль 4. Домен (если нужно) и регистрирует компоненту.

Пример запуска из внешней обработки;

 ИмяВременногоФайлаZIP = ПолучитьИмяВременногоФайла("zip");
ДвоичныеДанные = ПолучитьМакет("Архив");
ДвоичныеДанные.Записать(ИмяВременногоФайлаZIP);

// Извлекаем из ZIP-архива все сохраняем во временный файл
ЧтениеZIP = Новый ЧтениеZipФайла(ИмяВременногоФайлаZIP,);
Каталог =  КаталогВременныхФайлов()+ "_aMap";
ЧтениеZIP.ИзвлечьВсе(Каталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать);
ЧтениеZIP.Закрыть();

ЗапуститьПриложение(Каталог + "
eg.exe --component.dll --user --pass");

Предупреждение("Была установлена новаябиблиотека Программу следует перезагрузить");
ЗавершитьРаботуСистемы();

12 Comments

  1. Franco

    То есть всё равно — само собой — имя пользователя и пароль администратора?

    Reply
  2. Ukrandruha

    (1) Franco, Да, имя и пароль администратора. У нас он одинаковый на всех компьютерах.

    Reply
  3. Операция1Ы

    исходники будут?

    Reply
  4. KillHunter

    Неплохое решение, а зачем тебе исходники там же усе описанно, берешь да встраиваешь.

    Reply
  5. artbear

    Регистрирует именно АктивИкс или ДотНет-компоненты?

    Reply
  6. Ukrandruha

    (5) artbear, Регистрирует activex и связанные сборки, все должно быть упаковано в архив и помещено в макет

    Reply
  7. artbear

    ОФФ. подписался

    Reply
  8. iov

    запустить неизвестное приложение без исходников на боевом сервере?

    кто последний в очереди будет? я за вами…

    Reply
  9. Ukrandruha

    (8) iov, это net приложение, при желании можете посмотреть код в рефлекторе. Не вижу проблем

    Reply
  10. Amel2010

    У меня дает ошибку «неверное имя или пароль». Отсюда вопрос: нужно ли указывать имя домена в имени пользователя?

    И, если да, то в каком виде? И как передать служебные символы в пароле?

    Сейчас только заметил, что домен указывается 4-м параметром… Но это не помогло — ругается так же.

    Reply
  11. Amel2010

    Разобрался — не нужно указывать «—» перед аргументами — так выполнилось без ошибок. НО!

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

    Нужно вызывать в таком случае %SystemRoot%SysWoW64
    egsvr32, а не %SystemRoot%System32
    egsvr32.

    Автор, можно ли как-то устранить данный момент?

    Коллеги, может кто подскажет, как автоматически регистрировать ActiveX в таком случае?

    Reply
  12. v3rter

    Имя файла, совпадающее с консольной командой REG, считаю неудачным. Что-нибудь вроде xregsvr было бы уместнее.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *