Aайл msi.dll требуется для установки пакетов Microsoft Installer (MSI) . Если этот файл удаляется, Windows Installer не будет работать.
В этой статье мы будем обсуждать экземпляр об ошибке msi.dll на компьютере с системой Windows и её решение.
Msi.dll ошибка в Windows
При попытке установить любую программу установщик Windows на компьютере с системой Windows , вы можете получить сообщение об ошибке, похожее на то,что представлена здесь:
“MSIEXEC.EXE файл связан с отсутствующим экспортом MSI.DLL:222.”
После нажатия кнопки OK ,появляется другое сообщение об ошибке, похожее на то,которое упоминается ниже:
“Не могу запустить C:WindowsSystemMSIEXEC.EXE устройство, подключенное к системе, которое не работает.”
Причина ошибки
Эта проблема возникает, если файлы Windows Installer на компьютере попытаются обновить установщик файлов Windows.
Когда возникает описанная выше проблема, первое, что вам нужно сделать, это перезагрузить компьютер и снова попытаться установить программу Windows Office. Если Windows Installer повысил файлы,или файлы не копируются в правильное их расположение. Вместо этого, они сначала копируются во временную папку. Только тогда, когда вы перезагрузите свой компьютер файлы копируются в соответствующую папку. Для решение этого сообщения об ошибке, выполните следующие действия.
Удаленная установка программ в домене с помощью msi файла
Задача 1 — Скачайте Установщик Windows Update
- Нажмите на кнопку ссылка и нажмите кнопку Скачать , расположенную рядом с InstMsiA.exe .
- Сохраните файл на вашем рабочем Столе.
Задача 2 — Переименуйте файлы Windows Installer
- Перейдите в меню Пуск и выберите Выключить компьютер .
- Далее, нажмите кнопку Перезагрузите компьютер в режиме MS-DOS , а затем нажмите кнопку OK .
- Введите следующие команды в командной строке и нажмите клавишу Ввод после каждой команды, чтобы их выполнить.cd system
ren msi.dll msi.old
ren msihnd.dll msihnd.old
ren msiexec.exe msiexec.old
exit - Перезапустите Windows.
Задача 3 — Запустите Windows в Безопасном Режиме
- Нажмите кнопку Пуск и выберите пункт Выключить компьютер .
- Далее, нажмите кнопку Перезагрузить и нажмите кнопку OK .
- Нажмите и удерживайте кнопку SHIFT , когда окно перезагружается.
Задача 4 — Установка установщика Windows Update для Windows
- Дважды щелкните на файл InstMsiA.exe , сохраненный на рабочем столе.
- Далее, следуйте инструкциям на экране для завершения процесса установки.
- И наконец, перезапустите компьютер.
Если реестр задаёт вопросы причина которых ошибки DLL, таких, как msi.dll ошибки?
Да, он делают это, потому что на самом деле испорчен или поврежден реестр,именно это часто оказывается причиной распространенной ошибки DLL. Записи, относящиеся к DLL файлам хранятся в реестре. Вы можете получать повторяющиеся ошибки DLL, если записи, относящиеся к DLL-файлам повреждены или пропали без вести.
Установка и удаление программ групповыми политиками Windows Server 2016
Исправления ошибки DLL, такой, как ошибки msi.dll , в результате чего реестр выдаёт вопросы. Просканируйте реестр, с использованием эффективной программы очистки реестра,такой как RegGenie. Это мощный инструмент, который позволяет выполнять пользовательское сканирование реестра для исправления ошибок DLL.
MSI.DLL — Это файл безопасности?
Да, true msi.dll является файлом безопасности от Microsoft. Однако, несколько экземпляров вредоносных программ, используют файл с именем msi.dll . Для определения msi.dll на вашем компьютере это не система угрозы, просканируйте весь ваш компьютер с системой Windows, используя надежные и эффективные средства безопасности.
Для вызова процедуры установки или удаления можно использовать команду msiexec с параметрами командной строки. В параметрах команды msiexec передаются сведения, которые обычно указываются во время интерактивной установки с помощью панели установки WebSphere MQ . Для этого введите следующую команду в командной строке вместе с необходимыми параметрами: msiexec [ параметры ]
При работе с WebSphere MQ в системах Windows® Vista или Windows Server 2008 с включенной функцией Управление учетными записями пользователей (UAC) установку или удаление без вывода сообщений необходимо запускать из командной строки с повышенными правами доступа пользователя. Для этого щелкните правой кнопкой мыши для запуска командной строки и выберите пункт Запуск от имени администратора . При попытке запустить неинтерактивную установку или удаление без повышенных прав доступа пользователя в протоколе установки появится сообщение об ошибке AMQ4353.
Команда msiexec поддерживает два типа параметров командной строки:
Сначала следует указать параметры командной строки в команде msiexec , а затем пары свойство=значение.
Если параметр указан и в командной строке, и в файле ответов, значение в командной строке имеет больший приоритет.
Пример использования команды msiexec : msiexec /i «» /l*v c:install.log /m файл-mif TRANSFORMS=»1033.mst» AGREETOLICENSE=»yes» ADDLOCAL=»Server» где: /i » путь MSIIBM WebSphere MQ.msi » Установка продукта с помощью указанного файла .msi . /l*v c:install.log Создание файла протокола install.log , содержащего подробную информацию об установке. /m файл-mif Создание файла состояния Microsoft® System Management Server (SMS), .mif : файл-mif . TRANSFORMS=»1033.mst» Указывает, что установка выполняется на английском языке (США). Дополнительная информация о других языках приведена в разделе Использование преобразований для команды msiexec . AGREETOLICENSE=»yes» Принять условия лицензии. ADDLOCAL=»Server» Установка компонента сервера локально.
Пакет программы установки WebSphere MQ Windows: IBM WebSphere MQ.msi .
Package|
Package /t TransformList |
Package /g LanguageID
Эта опция игнорирует все значения свойств, указанные в командной строке.
u Оповещение текущего пользователя m Оповещение всех пользователей этой системы g ИД языка t Применение преобразования к пакету
файл-протокола
Задает путь к файлу протокола, а также флаги, обозначающие информацию для занесения в протокол.
i Сообщения о состоянии w Устранимые предупреждения e Все сообщения об ошибках a Запуск действий r Записи о действиях u Пользовательские запросы c Исходные параметры пользовательского интерфейса m Информация о нехватке памяти или неустранимом выходе o Сообщения о нехватке места на диске p Свойства терминала v Подробный вывод + Информация добавляется в существующий файл! Каждая строка выгружается в протокол * В протокол заносится вся информация, кроме опции v . Для регистрации всей информации, включая опцию v , укажите «/l*v»
q, qn Без пользовательского интерфейса. Неинтерактивная установка без пользовательского интерфейса. qb Основной пользовательский интерфейс. Отображаются встроенные окна диалогов с сообщениями о состоянии qr Сокращенный пользовательский интерфейс, в конце установки отображается модальное окно диалога. qf Полный пользовательский интерфейс, в конце установки отображается модальное окно диалога. qn+ Без пользовательского интерфейса, в конце установки отображается модальное окно диалога. qb+ Основной пользовательский интерфейс, в конце установки отображается модальное окно диалога. Модальное окно не отображается, если пользователь отменил установку. qb- Основной пользовательский интерфейс без модальных окон. Обратите внимание: уровень пользовательского интерфейса /qb+- не поддерживается.
- Не используйте опции /i , /x , /j и /a одновременно.
- Опции /t и /g можно использовать только вместе с /j .
- Опции /l и /q можно использовать вместе с /i , /x , /j и /a .
В таблицах Использование файла ответов вместе с командой msiexec .
«». Продолжить установку и обновить целевую систему (по умолчанию).
Доброго времени суток, Хабр! Хочу представить интересный, по моему мнению, способ создания msi-инсталляторов для любого программного обеспечения и, как следствие, развертывание его средствами GPO. Подчеркну, что описанный метод не подразумевает создание «слепков» системы, а использует нативные инсталляторы софта, при чем для создания msi применяются только бесплатные для коммерческого использования продукты.
Введение, пара ссылок и дисклеймер
Каждый нормальный инсталлятор ПО имеет возможность автоматической установки с определенными или заложенными по умолчанию параметрами. Суть моего метода проста и заключается в том, чтобы запаковать нативный инсталлятор в «контейнер» msi и запустить его с необходимыми параметрами командной строки. В сети куча информации по автоматической установке того или иного приложения, и я не буду заострять на этом внимание. Наша цель, повторюсь, — установка ПО средствами групповых политик. Кстати, некоторые из вас могут возразить, что установку можно производить через ZAW, но, к сожалению, данный метод применим только для установки с правами текущего пользователя и не может применяться для централизованной автоматической установки приложений.
Интересный цикл статей по установке ПО через ГП . Для новичков рекомендую прочитать все, чтобы потом не спрашивать, чем отличается тип установки «назначенный» от «публичный».
Необходимый софт. Exe to MSI Converter freeware и всем известная orca Первый нужен для того, чтобы создать msi из exe, а вторая — чтобы получившийся msi-ник смог установиться через групповые политики.
Метод не претендует на полную уникальность и в некоторых местах могут встречаться излишества, которых можно было бы избежать, но это связанно отсутствием желания и необходимости слишком глубоко вникать в параметры таблиц msi-пакетов. Первоначальной целью ставилось быстро найти бесплатный способ создания msi и после нескольких часов, проведенных в чтении зарубежных форумов и бесконечных перезагрузках виртуальной машины, метод был найден. Также, статья — это не обзор интерфейса программ, и скриншотов вы не увидите.
Создание и подготовка пакета
- Запускаем exe to msi и указываем в нем путь к exe-установщику firefox. По ранее найденной в сети информации становится понятно, что по-тихому установить огнелиса можно с параметрами -ms -ira . Их-то и указываем во втором поле exe to msi и жмем «Build MSI».
- Казалось бы все, msi-пакет готов. Действительно, запустив получившийся результат мы получим установленный в системе firefox и в статье можно было бы ставить точку. К сожалению, не все так просто. Текущий пакет установки не пригоден для развертывания через GPO и при загрузке компьютера вы будете получать совершенно ничего не объясняющие ошибки в логах «произошла неисправимая ошибка. » А все дело в том, что разработчики exe to msi тоже хотят есть и их бесплатный продукт генерирует msi «не по правилам».
- Ну что ж, берем орку и открываем в ней наш эмсиайник.
- Первым делом находим в левом списке таблицу Property и обращаем внимания на два поля — ProductCode и UpgradeCode . Эти два поля должны быть уникальны для каждого продукта, а наш exe to msi генерит всегда одинаковые. Ну что ж, не беда, жмем в верхнем менюView -> Summary Information , находим поле PackageCode и жмем New GUID . Получившийся результат копируем в буфер обмена и вставляем в ProductCode . Повторяем для UpgradeCode и наконец для самого PackageCode . Тут же в Summary Information правим поле Title на Mozilla Firefox, остальное по желанию. Это, по сути, ни на что не влияет.
- Опять же в таблице Property меням ProductName на Mozilla Firefox (я до кучи меняю еще ARPCONTACT и Manufacturer ). Можно так же поставить правильное значение для ProductVersion .
- Вроде бы GUID и прочие «IDы» поменяли, но как показывает практика, этого недостаточно. Жмите в orca Tools –> Validate , снимите птицу Show INFO Messages и нажимайте Go .
- Как видите, вылезла куча ошибок на наличие/отсутствие некоторых таблиц и значений. Я не стал заморачиваться и просто взял первый попавшийся (7zip x64 9.20) небольшой msi и скопировал оттуда 4 недостающие таблицы (через Export-Import, естественно): _Validation, AdminExecuteSequence, AdminUISequence и AdvtExecuteSequence . На самом деле, я уверен, что можно создать «правильный» msi-инсталлятор, без лишнего мусора, но не забывайте, наша цель всего лишь запустить родной setup приложения в тихую.
- После добавления таблиц проходим снова Tools –> Validate (к слову, первый раз проверку можно вообще не делать и сразу импортировать таблицы). Если вы тоже взяли за основу msi от 7zip, то результатом будет шесть эрроров, которые необходимо устранить. Жмите Close , удаляйте лишние поля, отмеченные красным.
- В конце можно еще раз проверить валидацию и убедиться что остались лишь ничем не мешающие варнинги. Сохраняем msi.
- Вот в принципе и все, осталось добавить msi в ГП и назначить необходимые свойства.
Нюансы
- При установке описанным выше методом у вас появятся как бы две копии софта. Первая — собственно нужное приложение, а вторая — исходный msi-ник, ведь мы же его как бы поставили. В принципе, это ни на что не влияет, кроме как на отображение в «Установка и удаление программ», и то, только в Windows XP (если вы ничего не меняли, кроме указанного мной). Минусом может быть появление лишних программ при автоматической инвентаризации софта, если вы ее используете.
- Автоматически удалить приложение теми же средствами развертывания не получится. Точнее получится, но удалится только и так не нужный msi-контейнер. Ну можно повозиться со свойствами msi при его создании, чтобы оно захватывало с собой установленное ранее приложение, так же втихую. Я такой задачи не ставил.
- При установке обновлений ПО нужно указывать в свойствах ГП приложения, чтобы оно заменяло предыдущее, т.е обязательно предварительно удаляло старое. Это гарантирует, что у вас не будут плодиться те самые никому не сдавшиеся левые дубли приложений в «установке и удалении программ».
- Чтобы установить приложение, имеющее дистрибутив из нескольких файлов, вам придется сначала упаковать его в exe, который при запуске сам распакуется и даст команду для тихой установки. Рекомендую создавать sfx-архивы средствами того же 7-zip.
- Ничего не мешает ставить ПО через скрипты автозагрузки. Более того, такой метод более гибкий, и я давно его использую через свои скрипты. Вот только использование родных средств ГП получается намного быстрее, т. к. простое создание msi из exe занимает пару минут.
- Windows 7 почему-то не пишет «Установка управляемого приложения. », а просто говорит «пожалуйста, подождите». При первом развертывании всей кучи софта разом или при установке тяжелого приложения это может сподвигнуть юзера на звонок админу или нажатие кнопки резет.
Источник: radiobud.ru
Создание msi-пакетов и установка любого ПО средствами групповых политик Windows
2012-04-09 в 9:01, admin , рубрики: групповые политики, системное администрирование, метки: групповые политики
Доброго времени суток! Хочу представить интересный, по моему мнению, способ создания msi-инсталляторов для любого программного обеспечения и, как следствие, развертывание его средствами GPO. Подчеркну, что описанный метод не подразумевает создание «слепков» системы, а использует нативные инсталляторы софта, при чем для создания msi применяются только бесплатные для коммерческого использования продукты.
Введение, пара ссылок и дисклеймер
Каждый нормальный инсталлятор ПО имеет возможность автоматической установки с определенными или заложенными по умолчанию параметрами. Суть моего метода проста и заключается в том, чтобы запаковать нативный инсталлятор в «контейнер» msi и запустить его с необходимыми параметрами командной строки. В сети куча информации по автоматической установке того или иного приложения, и я не буду заострять на этом внимание. Наша цель, повторюсь, — установка ПО средствами групповых политик. Кстати, некоторые из вас могут возразить, что установку можно производить через ZAW, но, к сожалению, данный метод применим только для установки с правами текущего пользователя и не может применяться для централизованной автоматической установки приложений.
Интересный цикл статей по установке ПО через ГП. Для новичков рекомендую прочитать все, чтобы потом не спрашивать, чем отличается тип установки «назначенный» от «публичный».
Необходимый софт. Exe to MSI Converter freeware и всем известная orca Первый нужен для того, чтобы создать msi из exe, а вторая — чтобы получившийся msi-ник смог установиться через групповые политики.
Метод не претендует на полную уникальность и в некоторых местах могут встречаться излишества, которых можно было бы избежать, но это связанно отсутствием желания и необходимости слишком глубоко вникать в параметры таблиц msi-пакетов. Первоначальной целью ставилось быстро найти бесплатный способ создания msi и после нескольких часов, проведенных в чтении зарубежных форумов и бесконечных перезагрузках виртуальной машины, метод был найден. Также, статья — это не обзор интерфейса программ, и скриншотов вы не увидите.
Создание и подготовка пакета
Пример установки будет произведен для Mozilla Firefox, т. к. это широко известный продукт, не имеющий msi-инсталлятора от разработчиков.
- Запускаем exe to msi и указываем в нем путь к exe-установщику firefox. По ранее найденной в сети информации становится понятно, что по-тихому установить огнелиса можно с параметрами -ms -ira. Их-то и указываем во втором поле exe to msi и жмем «Build MSI».
- Казалось бы все, msi-пакет готов. Действительно, запустив получившийся результат мы получим установленный в системе firefox и в статье можно было бы ставить точку. К сожалению, не все так просто. Текущий пакет установки не пригоден для развертывания через GPO и при загрузке компьютера вы будете получать совершенно ничего не объясняющие ошибки в логах «произошла неисправимая ошибка. » А все дело в том, что разработчики exe to msi тоже хотят есть и их бесплатный продукт генерирует msi «не по правилам».
- Ну что ж, берем орку и открываем в ней наш эмсиайник.
- Первым делом находим в левом списке таблицу Property и обращаем внимания на два поля — ProductCode и UpgradeCode. Эти два поля должны быть уникальны для каждого продукта, а наш exe to msi генерит всегда одинаковые. Ну что ж, не беда, жмем в верхнем меню View -> Summary Information, находим поле PackageCode и жмем New GUID. Получившийся результат копируем в буфер обмена и вставляем в ProductCode. Повторяем для UpgradeCode и наконец для самого PackageCode. Тут же в Summary Information правим поле Title на Mozilla Firefox, остальное по желанию. Это, по сути, ни на что не влияет.
- Опять же в таблице Property меням ProductName на Mozilla Firefox (я до кучи меняю еще ARPCONTACT и Manufacturer). Можно так же поставить правильное значение для ProductVersion.
- Вроде бы GUID и прочие «IDы» поменяли, но как показывает практика, этого недостаточно. Жмите в orca Tools –> Validate, снимите птицу Show INFO Messages и нажимайте Go.
- Как видите, вылезла куча ошибок на наличие/отсутствие некоторых таблиц и значений. Я не стал заморачиваться и просто взял первый попавшийся (7zip x64 9.20) небольшой msi и скопировал оттуда 4 недостающие таблицы (через Export-Import, естественно): _Validation, AdminExecuteSequence, AdminUISequence и AdvtExecuteSequence. На самом деле, я уверен, что можно создать «правильный» msi-инсталлятор, без лишнего мусора, но не забывайте, наша цель всего лишь запустить родной setup приложения в тихую.
- После добавления таблиц проходим снова Tools –> Validate (к слову, первый раз проверку можно вообще не делать и сразу импортировать таблицы). Если вы тоже взяли за основу msi от 7zip, то результатом будет шесть эрроров, которые необходимо устранить. Жмите Close, удаляйте лишние поля, отмеченные красным.
- В конце можно еще раз проверить валидацию и убедиться что остались лишь ничем не мешающие варнинги. Сохраняем msi.
- Вот в принципе и все, осталось добавить msi в ГП и назначить необходимые свойства.
Нюансы
- При установке описанным выше методом у вас появятся как бы две копии софта. Первая — собственно нужное приложение, а вторая — исходный msi-ник, ведь мы же его как бы поставили. В принципе, это ни на что не влияет, кроме как на отображение в «Установка и удаление программ», и то, только в Windows XP (если вы ничего не меняли, кроме указанного мной). Минусом может быть появление лишних программ при автоматической инвентаризации софта, если вы ее используете.
- Автоматически удалить приложение теми же средствами развертывания не получится. Точнее получится, но удалится только и так не нужный msi-контейнер. Ну можно повозиться со свойствами msi при его создании, чтобы оно захватывало с собой установленное ранее приложение, так же втихую. Я такой задачи не ставил.
- При установке обновлений ПО нужно указывать в свойствах ГП приложения, чтобы оно заменяло предыдущее, т.е обязательно предварительно удаляло старое. Это гарантирует, что у вас не будут плодиться те самые никому не сдавшиеся левые дубли приложений в «установке и удалении программ».
- Чтобы установить приложение, имеющее дистрибутив из нескольких файлов, вам придется сначала упаковать его в exe, который при запуске сам распакуется и даст команду для тихой установки. Рекомендую создавать sfx-архивы средствами того же 7-zip.
- Ничего не мешает ставить ПО через скрипты автозагрузки. Более того, такой метод более гибкий, и я давно его использую через свои скрипты. Вот только использование родных средств ГП получается намного быстрее, т. к. простое создание msi из exe занимает пару минут.
- Windows 7 почему-то не пишет «Установка управляемого приложения. », а просто говорит «пожалуйста, подождите». При первом развертывании всей кучи софта разом или при установке тяжелого приложения это может сподвигнуть юзера на звонок админу или нажатие кнопки резет.
На этом вроде бы все, надеюсь было интересно, делитесь опытом.
Источник: www.pvsm.ru
Zabbix Agent — Установка/Деплой через GPO
Парадокс нашей админской жизни — как бы мы не стремились в Unixway, все равно приходится админить сервера на Windows. Вообщем и эта заметка будет про автоматизацию процесса установки zabbix-агентов на windows сервера.
Собственно раскатывать агентов будем через груповые политики AD, ранее я уже писал об этом в прошлых заметках. Остается только придумать как реализовать процесс добавления хоста в заббикс. Этот поинт будем решать, через скриптец, который напишем далее.
Подготовка#
На стороне заббикс-сервера, нужно внести некоторые приготовления. По моему замыслу, все новые хосты должны назначаться в определенную группу, и далее администратор заббикса распределит хосты по нужным группам. Поэтому создаем хост-группу — Unassigned :
Отлично группа добавлена, давайте теперь сгенерим токен, для подключения к заббикс api. Для этого перейдем в настройки пользователя, пункт API Tokens .
В новом окне добавляем токен:
Указываем имя для токена, и описание для удобства. Также в зависимости от вашей политики безопасности, можно указать дату когда токен протухнет.
В следующем окне копируем токен, и сохраняем его к себе.
Скриптец на добавление#
Теперь давайте напишим скриптец, который будет автоматом добавлять наши хосты в zabbix-сервер. По причине того, что эта реализация для windows серверов, скриптец будем писать на Powershell.
Написание нашей портянки, начнем с объявления списка переменных.:
# Zabbix server vars: $ZBX_SERVER = «zabbix.local» $ZBX_API = «http://$ZBX_SERVER/api_jsonrpc.php» $ZBX_TOKEN = «sdalmin15. 91h51insaf» $ZBX_TEMPLATE = «Windows by Zabbix agent» $ZBX_HOSTGRP = «Unassigned»
- $ZBX_SERVER — адрес zabbix-сервера
- $ZBX_API — адрес апишки zabbix-сервера, как можно заметить в строку адреса добавляется переменная — $ZBX_SERVER . Думаю, что значение этой переменной по большой части будет статичное. За исключением, если придеться поправить uri строку.
- $ZBX_TOKEN — тут указывается токен к api заббикса, который мы сгенерили на этапе подготовки.
- $ZBX_TEMPLATE — в значении этой переменной указывается шаблон мониторинга из заббикса. Как ранее я говорил, здесь будем использовать шаблон для мониторинга винды через агента.
- $ZBX_HOSTGRP — группа ( Unassigned ), которую создали на этапе подготовки.
Далее идет блок с объявлением переменных с данными добавляемого хоста. Я временно захардкодил значения, в последующем в эти значения мы будем передавать аргументы.
# Host vars: $HOSTIP = «1.1.1.1» $HOSTNAME = «TEst-api» $AGENT_PORT = «10050»
- $HOSTIP — адрес сервера, который мы хотим добавить.
- $HOSTNAME — имя добавляемого сервера.
- $AGENT_PORT — порт, на котором слушает заббикс агент.
Теперь нужно набросать запрос на добавление нового хоста. Поэтому объявляем новый массив.
В данном массиве, мы указываем основные параметры. Это метод запроса — POST, в хедере — поле content-type, адрес сервера и в теле запроса — json-ка. Как видно из этого сниппета, в значении body объявляется массив с описанием объекта, который в дальнейшем конвертируется в json. В документации по api заббикса, описывается какие поля нужно использовать для вызова того или иного метода.
Основная часть работы проделана, все необходимые данные определены. Теперь остается только выполнять запрос в скрипте. Для этого воспользуемся командлетов powershell — Invoke-WebRequest , это некий аналог curl .
Командлету передаем запрос, который написали ранее.
С написанием все, файл с криптецким выложил в gitlab. Ну и для проверки запускаем скриптец, что бы убедиться в корректности его работы.
В ответе видим статускод 200, и в значении поля content указан результат запроса:
StatusCode : 200 StatusDescription : OK Content : ,»id»:1> RawContent : HTTP/1.1 200 OK
Идем на заббикс сервер, и ищем наш хост.
Создание груповой политики#
С сайта zabbix качаем установочный пакет с агентом. Установочный пакет размещаем на доступной шаре. Выставляем на файл права чтение/выполнение.
Инсталятор запускать будем из-под скрипта, поэтому вносим изменения. Ну для начала действия по добавлению хоста в zabbix выносим в отдельную функцию:
Теперь пишем функцию, которая будет запускать инсталятор:
function InstallZbxAgent() < msiexec /i \dc01agentszabbix_agent2-6.0.14-windows-amd64-openssl.msi /qn SERVER=$ZBX_SERVER LISTENPORT=$AGENT_PORT HOSTNAME=$HOSTNAME >
В теле функции запускается установка msi-пакета, с агрументами. В качестве аргументов указывается сервер заббикса, порт и имя хоста.
Изменения также коснулись и переменных, в значения которых ранее мы хардкодили ip и fqdn:
# Host vars: $HOSTIP = (Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias Ethernet).IPAddress.toString() $HOSTNAME = ([System.Net.Dns]::GetHostByName($env:computerName).HostName).tolower() $AGENT_PORT = «10050»
В значение переменной $HOSTIP — указывается результат выполнения командлета Get-NetIPAddress . А в значение переменной $HOSTNAME — FQDN сервера из окружения.
Из основного все, остается только добавить в скрипт проверку, на тот случай если заббикс агент уже установлен. И указать так называемый — entry point для скрипта.
if (!(Test-Path -Path «HKLM:SYSTEMCurrentControlSetServicesZabbix Agent») -and !(Test-Path -Path «HKLM:SYSTEMCurrentControlSetServicesZabbix Agent 2»))
Если в реестре нет Zabbix Agent и Zabbix Agent 2, то выполнить функции — InstallZbxAgent и RegisterNewHost . Обновленную версию скрипта, также выложил в gitlab репу.
Ну и заклютельным этапом, остается создать новую групповую политику, в которой будем запускать уже готовый сценарий. Открываем редактор групповых политик, создаем новую политику в контейнере с серверами.
Отредактируем политику:
В новом окне проваливаемся внутрь -> Computer Configuration , Policies , Windows Settings , Scripts (Startup/Shutdown) .
Открываем Startup properties, во вкладке Scripts добавляем новый скрипт (Кнопка Add). В новом окне прописываем путь к powershell, а в параметрах к запускаемой программе указываем путь до скрипта:
## Script name: %windir%System32WindowsPowerShellv1.0powershell.exe ## Script parameters: -Noninteractive -ExecutionPolicy Bypass -Noprofile -file «\DC01NETLOGONzbx_agent_install.ps1»
Сохраняемся и выходим.
Теперь если посмотреть вьюху групповой политики, нас будет ждать что-то вроде этого:
Наш готовый скриптец закидываем в каталог, который указывали в параметрах startup скрипта:
С настройкой все закончили. Подключаемся на любой хост, и обновляем политики. Команда — gpupdate /force .
Выводим список всех политик. Команда — gpresult /R /scope:computer
Что бы протестировать работу процесса, я поднял временно виртуалку, добавил ее в домен и перенес в контейнер с серверами.
После ввода тачки в домен, перезапускаем сервер и смотрим. Агент установился.
Смотрим на стороне zabbix-сервер: Хост создался.
Отлично, мы успростили себе немного жизнь =)
Полезные ссылки#
- Документация к методу на zabbix wiki
- Репозиторий со скриптом
Источник: nixhub.ru