Привет, Habr!
Думаю всем системным администраторам известна довольна полезная утилита, которая позволяет на рабочем столе компьютеров в сети выводить информацию для них самих и для пользователей. Называется она Bginfo, была разработана Марком Русиновичем, входит в состав Sysinternals. Скачать утилиту и прочитать про нее можно на Learn.Microsoft


Не буду вдаваться в подробности по настройке самой утилиты и создания конфигурационного файла по отображению той или иной информации, так как есть подробные гайды на эту тему на просторах интернета, а просто расскажу как можно легко установить ее посредством командной строки Windows на компьютеры внутри сети предприятия без использования групповых политик.
Итак приступим.
-
Первое, что нам нужно сделать, это скачать саму утилиту и собрать файл конфигурации bgi. Распаковывем архив, получая одноименную папку с названием «BGInfo». В ней содержатся файлы самой утилиты 32 и 64-битных версий. Файл с описанием лицензионного соглашения. Сюда же сохраняем наш файл конфигурации с расширением .bgi, созданный через утилиту.

-
Создаем папку «Install BGInfo», например в корне диска С:\ компьютера с которого будем производить установку на нужные нам компьютеры в сети. Копируем папку с утилитой и конфигом в эту папку.
-
Создаем файл со списком имен удаленных компьютеров. Я назвал его «hosts.txt». Каждое имя пишем с новой строки. Если нужно закомментировать host, то просто добавляем решетку # перед именем. Сохраняем его в этой же папке «Install BGInfo».

Содержимое файла hosts.txt -
Создаем bat файл со следующим содержимым и сохраняем в ту же папку «Install BGInfo»:
@cd/d "%~dp0" @echo off setlocal ENABLEDELAYEDEXPANSION set "file=.\hosts.txt" echo "Date: %DATE% time: %TIME%" > .\result_install_BGingo.csv FOR /F %%x IN ('findstr /B /V /C:# %file%') DO ( ping %%x -n 1 | find "TTL=" > nul if errorlevel 1 ( echo %%x offline echo *************************************************** echo %%x;offline >> .\result_install_BGingo.csv ) else ( echo install on %%x xcopy .\BGInfo "\\%%x\c$\BGInfo" /e /y /i echo reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Bginfo /t REG_SZ /d "C:\BGInfo\Bginfo64.exe C:\BGInfo\conf-bginfo.bgi /NOLICPROMPT /TIMER:0" /f > C:\reg.bat xcopy "C:\reg.bat" "\\%%x\c$" wmic /node:"%%x" process call create "C:\reg.bat" TIMEOUT /T 5 /NOBREAK del /f /q "C:\reg.bat" del /f /q "\\%%x\c$\reg.bat" echo reg files was deleted echo *************************************************** echo %%x;ok >> .\result_install_BGingo.csv ) ) pause
В итоге мы получаем папку со следующим содержимым:

Суть скрипта следующая. Проходим по всем компьютерам в сети, указанным в файле hosts.txt. Пингуем хост и, если он доступен, то копируем папку «BGInfo» с утилитой в корень диска С:\ удаленного компьютера в сети. Создаем reg.bat для записи в реестр в ветку автозагрузки HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run переменной с именем Bginfo и ее значением «C:\BGInfo\Bginfo64.exe C:\BGInfo\conf-bginfo.bgi /NOLICPROMPT /TIMER:0». Копируем этот reg.bat в корень диска С:\ удаленного компьютера и запускаем его на исполнение. После отработки reg.bat на удаленном компьютере подчищаем за собой, удаляя сам батник на удаленной машине и у себя. Также после отработки нашего инсталятора мы получаем лог-файл «result_install_BGingo.csv» в котором отображены хосты с комментариями «offline» (хост недоступен) или «ок» (установка выполнена).
После всех приготовлений запускаем от имени администратора домена сам батник setuр_bginfo.bat и пьем кофеек, наблюдая за процессом установки.
Код проекта вы можете посмотреть и скачать на GitHub.
ссылка на оригинал статьи https://habr.com/ru/post/693820/

Добавить комментарий