Пара слов от переводчика
Продолжаю публиковать переводы статей системных администраторов. Реальные случаи, реальные проблемы, реальные ошибки, реальное их разрешение, реальный язык. Стараюсь делать переводы «близкие к тексту», сохраняя стиль автора. Так что наберитесь терпения, стиль повествования и перевода будет очень отличаться от обычных постов моего блога, но на смысловой нагрузке поста это никак не сказывается. Учитесь читать «между строк», да прибудет с Вами сила
Пост
Это сделать гораздо легче, чем вылечить – переустановить, и для установки большинства распространенных приложений, используемых компанией, мы используем специальное меню установки, чтобы не рыться по серверам в поисках пакетов и скриптов. Однажды, переустанавливая приложение, наш технический сотрудник натолкнулся на такую ошибку:Installer. Run-time error ‘-2147024770 (8007007e)’: Automation error – The specified module could not be found.”
Через час он позвал меня помочь разобраться в происходящем. С нашей машины я скопировал Process Monitor, запустил его, установил фильтр. Сначала было дело отсутствия модуля, затем, фильтруя результаты, проглядывая активность, а после из Tools > Count Occurrences сделал дальнейшую фильтрацию, чтобы получить результат:
“PATH NOT FOUND” может быть более общий, но просматривать другие результаты, казалось на столь целесообразно:
Это оказалось интересным, так как файл не имел ничего общего с теми приложениями, которые мы поддерживаем. Так как у нас был потерян модуль, то искал я scrrun.dll в более распространенных местах для dll файлов - C:\Windows\System32:
Это запускаемый скриптовый модуль Microsoft, который необходим для запуска Visual Basic скрипта и так же для запуска .exe файлов. Так почему приложение не в состоянии определить местонахождения scrrun.dll? Я предположил, когда trademanager устанавливался, он зарегистрировал scrrun.dll в пути программы (C:\Program Files\trademanager\…). В какой-то момент приложение перестали использовать, возможно, удалили, удалили неправильно, или же удалили scrrun.dll без должной регистрации. Чтобы решить поставленную задачу, я просто запустил команду regsvr32 scrrun.dll, которая должным образом зарегистрирует с папки system32. После этого, приложение запустилось нормально.
Потом, чтобы окончательно разобраться, я поэкспериментировал с trademanager program (AliIM2011_ATM(6.30.11E).exe), установил ее и проверил, что, когда scrrun.dll удаляется вместе с модулями программы, обратно в папке system32 scrrun.dll не регистрируется.
Комментариев нет:
Отправить комментарий