Массовая установка (обновление) агента Zabbix

Появилась необходимость автоматизировать установку агента Zabbix на сервера. Написал небольшой скрипт (не без помощи ИИ конечно же), который делает это. Кроме скрипта необходима небольшая обвязка вокруг него: утилита PsExec (та что от Sysinternal), а также ещё несколько файлов. Вот вся структура каталога, которая должна быть с содержимым файлов:

Файл zabbix_agent2.conf в который прописана вся необходимая информация для подключения к серверу администрирования и его работы, кроме имени клиента, которое будет автоматически подставляться в процессе работы скрипта (берите его от своих администраторов мониторинга)

Файл PsExec.exe

Файл computers.csv в котором будут прописаны в столбец только FQDN-серверов, на которые требуется установка (название столбца указывать не надо)

Файл скрипта set_zabbix_mass.bat. Вот его содержимое:
@echo off
chcp 65001
cd %~dp0
for /f "usebackq tokens=1 delims=;" %%a in ("computers.csv") do (
xcopy zabbix_agent2.conf .\install /I /Y /Q
set Hostname=%%a
set Hostname >> ".\install\zabbix_agent2.conf"
xcopy .\install \%%a\C$\Zabbix /I /S /Y /Q
PsExec.exe \%%a "C:\Zabbix\install_agent_silent.bat" -accepteula
if %errorlevel%==0 (
echo Success on %%a>> install-agent.log
) else (
echo Error on %%a>> install-agent.log
)
rmdir /S /Q \%%a\C$\Zabbix
set Hostname=
)
pause

Каталог install в котором содержится 2 файла:

Файл zabbix_agent2-7.4.11-windows-amd64-openssl.msi — то что требуется поставить на сервера. В вашем случае может быть другая версия. Тогда надо поправить название файла в скрипте install_agent_silent.bat

Файл скрипта install_agent_silent.bat со следующим содержимым:
msiexec /l*v C:\install-zabbix.log /i C:\Zabbix\zabbix_agent2-7.4.11-windows-amd64-openssl.msi /qn^
SERVER=192.168.77.85,192.168.77.86,192.168.77.63,192.168.77.77
setlocal enabledelayedexpansion
set "SERVICE=Zabbix Agent 2"
set "MAX_TRIES=3"
set "TRY=0"
:check
set /a TRY+=1
echo Attempt !TRY! of %MAX_TRIES%...
sc query "%SERVICE%" | find "RUNNING" >nul
if %errorlevel%==0 (
xcopy C:\Zabbix\zabbix_agent2.conf "C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf" /I /Y
net stop "Zabbix Agent 2" && net start "Zabbix Agent 2"
goto :success
)
if !TRY! lss %MAX_TRIES% (
rem Wait 5 sec...
ping -n 6 127.0.0.1 >nul
goto :check
)
rem === Check status service failed ===
echo [%date% %time%] Service "%SERVICE%" not started after %MAX_TRIES% checks
goto :eof
:success
echo Installation completed successfully.
goto :eof

Создайте всю необходимую структуру, как я описал, и после можно запускать скрипт set_zabbix_mass.bat, просто кликнув на него 2 раза мышкой. Учетка, под которой вы это делаете, должна иметь права администратора на удаленных серверах. Естественно нужны все сетевые доступы для такого вида установки, а также уверенность, что установку не остановит политики безопасности.

Настройка браузера по-умолчанию для образа Windows 10

Мне на работе недавно пришлось настраивать образ Windows 10, чтобы потом его можно было развернуть на компьютерах в автоматическом режиме. Поэтому поводу ранее была статья. В ней настройка производилась через Deployment Workbench. К сожалению эта программа не позволяет легко настроить образ Windows 10 так, чтобы браузером по умолчанию для всех пользователей был Internet Explorer или какой-либо другой на ваше усмотрение. В данный момент в Windows 10 Pro браузером по умолчанию является Microsoft Edge, что не всегда удобно для корпоративной среды. Что же нужно сделать, чтобы при развертывании образа, назначался автоматически другой браузер?

Для начала нам нужен дистрибутив Windows 10. Те, кто разворачивал образ через Deployment Workbench, скорее всего найдут его в папке С:\DeploymentShare\Operating Systems\. У меня, например, там есть папка «Windows 10 Pro x64». В папках системой заходим в «sources» и удостоверяемся что образ установки «install.wim» у нас на месте. Далее по шагам:

  1. открываем командную строку от имени Администратора и переходим в нужную нам директорию «sources»
    cd "D:\DeploymentShare\Operating Systems\Windows 10 Pro x64\sources"
  2. командой Dism /get-wiminfo /wimFile:install.wim узнаем индексы систем вложенных в дистрибутив. В моем случае мне нужно настроить Windows 10 Pro и мой индекс оказался равен 3.
  3. создаем директорию, куда будем монтировать wim-образ
    mkdir C:\WIM\
  4. командой Dism /Mount-Image /ImageFile:install.wim /index:3 /MountDir:C:\WIM\ производим монтирование образа, не забываем правильно указать индекс системы
  5. командой Dism /Image:C:\WIM\ /Export-DefaultAppAssociations:C:\AppAssociations.xml выполняем экспорт файловых ассоциаций
  6. открываем в текстовом редакторе файл AppAssociations.xml и меняем настройки по свои нужды, у меня он, например, выглядит так (взято из просторов сети):
    <?xml version=»1.0″ encoding=»UTF-8″?>
    <DefaultAssociations>
    <Association Identifier=».htm» ProgId=»IE.AssocFile.HTM» ApplicationName=»Internet Explorer» />
    <Association Identifier=».html» ProgId=»IE.AssocFile.HTM» ApplicationName=»Internet Explorer» />
    <Association Identifier=».mht» ProgId=»IE.AssocFile.MHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=».mhtml» ProgId=»IE.AssocFile.MHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=».partial» ProgId=»IE.AssocFile.PARTIAL» ApplicationName=»Internet Explorer» />
    <Association Identifier=».svg» ProgId=»IE.AssocFile.SVG» ApplicationName=»Internet Explorer» />
    <Association Identifier=».url» ProgId=»IE.AssocFile.URL» ApplicationName=»Internet Browser» />
    <Association Identifier=».website» ProgId=»IE.AssocFile.WEBSITE» ApplicationName=»Internet Explorer» />
    <Association Identifier=».xht» ProgId=»IE.AssocFile.XHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=».xhtml» ProgId=»IE.AssocFile.XHT» ApplicationName=»Internet Explorer» />
    <Association Identifier=»ftp» ProgId=»IE.FTP» ApplicationName=»Internet Explorer» />
    <Association Identifier=»http» ProgId=»IE.HTTP» ApplicationName=»Internet Explorer» />
    <Association Identifier=»https» ProgId=»IE.HTTPS» ApplicationName=»Internet Explorer» />
    <Association Identifier=»mk» ProgId=»IE.HTTP» ApplicationName=»Internet Explorer» />
    <Association Identifier=»res» ProgId=»IE.HTTP» ApplicationName=»Internet Explorer» />
    </DefaultAssociations>
  7. делаем импорт ассоциаций в образ Dism /Image:C:\WIM\ /Import-DefaultAppAssociations:C:\AppAssociations.xml
  8. проверяем, что изменения сохранились Dism /Image:C:\WIM /Get-DefaultAppAssociations
  9. если всё правильно, то делаем коммит изменений командой Dism /Unmount-Image /MountDir:C:\WIM\ /Commit

На этом всё. Если нужно поменять другую программу по-умолчанию в образе, то делаем аналогичные действия. Если программа не входит в образ по- умолчанию, то не забываем ее в этот образ внедрить.