понедельник, 29 ноября 2010 г.

Выполняем регистрацию библиотек на удаленных компьютерах (выполняем regsvr32.exe удаленно)

Время от времени возникает необходимость регистрировать вручную библиотеки на удаленных компьютерах. Когда компания использует 1С:Предприятие 7.7 или 1С:Предприятие 8, бывает необходимо зарегистрировать библиотеки, содержащие так называемые внешние компоненты.К таким компонентам относятся и namedecl.dll (Компонента склонения имен), и 1cbarcod.dll (компонента печати штрих-кодов), и еще куча всего разного. Обычно на локальном компьютере это процедура делается с использованием утилиты regsvr32.exe. Но что делать если нужно зарегистрировать библиотеку на удаленной машине?

Справиться с этой задачей нам поможет утилита PsExec, входящая в комплект PsTools Марка Руссиновича.
Программа PsExec — это облегченный вариант Telnet. Она позволяет выполнять процессы в удаленных системах, используя для этого все возможности интерактивного интерфейса консольных приложений, и при этом нет необходимости вручную устанавливать клиентское программное обеспечение. Основное достоинство PsExec — это возможность вызывать в интерактивном режиме интерфейс командной строки в удаленных системах и удаленно запускать такие инструменты как IpConfig. Это единственный способ вывести на экран локального компьютера данные об удаленной системе.
Итак, установка пакета утилит проста. Скачиваем файл, запускаем его, указываем путь для распаковки (лучше выбрать путь покороче, чтобы до него легко было добраться из командной строки). Всё! PsTools готов к работе!
Из всего набора утилит нам понадобится лишь PsExec. Итак, открывает командную строку cmd.exe (Пуск –> Выполнить… , набираем cmd и жмем )
Переходим к каталогу, где хранится распакованный пакет утилит PsTools (в нашем случае это C:\tools\pstools):
cd c:\tools\pstools
Затем выполняем psexec с параметрами:
c:\tools\pstools> psexec \\c13 –u DOMAIN\Администратор regsvr32 /s "c:\program files\1cv81\bin\namedecl.dll"
где \\C13 – имя целевого компьютера, на котором планируется выполнить команду;
-u DOMAIN\Администратор – имя пользователя, имеющего права Администратора на целевом компьютере (в нашем случае, это администратор домена);
regsvr32 /s "c:\program files\1cv81\bin\namedecl.dll" – собственно, команда которую мы выполняем. Ключ /s включает “тихий” режим, в котором окна с сообщениями не отображаются. Другие доступные параметры можно увидеть, запустив regsvr32 с ключом /? на локальной машине.
Далее, PsExec спросит у нас пароль на учетную запись, которую мы указали после ключа –u и вернет следующее сообщение:
regsvr32 exited on c13 with error code 0.
Такое сообщение говорит о успешном выполнении команды. Если код ошибки будет отличен от 0, то необходимо будет спросить google, либо оторвать-таки любимую попу от стула и сходить посмотреть, что же за ошибка выдается на целевом компьютере, если попытаться регистрировать эту библиотеку вручную.
Я бы рекомендовал такой инструмент в тех случаях, когда мы точно знаем, что необходимая библиотека обычно без проблем регистрируется на рабочих станциях.

1 комментарий:

Сергей Ян комментирует...

Добрый день, а подскажите тогда как запустить на удаленном ПК под управлением server 2008R2 и включенным UAC как в этом случаи будет скрипт?