Pull to refresh

Установка Bginfo на компьютеры в сети через командную строку Windows

Reading time3 min
Views9.3K

Привет, Habr!

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

Внешний вид утилиты
Внешний вид утилиты
Пример отображения информации на рабочем столе
Пример отображения информации на рабочем столе

Не буду вдаваться в подробности по настройке самой утилиты и создания конфигурационного файла по отображению той или иной информации, так как есть подробные гайды на эту тему на просторах интернета, а просто расскажу как можно легко установить ее посредством командной строки Windows на компьютеры внутри сети предприятия без использования групповых политик.

Итак приступим.

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

Итоговое содержимое папки
Итоговое содержимое папки
  1. Создаем папку "Install BGInfo", например в корне диска С:\ компьютера с которого будем производить установку на нужные нам компьютеры в сети. Копируем папку с утилитой и конфигом в эту папку.

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

    Содержимое файла hosts.txt
    Содержимое файла hosts.txt
  3. Создаем 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

В итоге мы получаем папку со следующим содержимым:

Содержимое папки Install BGInfo
Содержимое папки Install BGInfo

Суть скрипта следующая. Проходим по всем компьютерам в сети, указанным в файле 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.

Tags:
Hubs:
Total votes 3: ↑3 and ↓0+3
Comments11

Articles