Как я по-быстрому инвенту хотел
По мотивам поста http://joyreactor.cc/post/4735169
В нём я писал что туповат, а быструю инвенту хочется, а так-же обещал сделать пост с готовым решением, когда смогу реализовать.
Здесь будет парочка довольно дубовых батников от которых у прошаренных пользователей винскриптов заболят глаза, так-что осторожно.
Итак, наша задача максимально просто и быстро инвертаризовать парк примерно в 70 виндовых машин. Машины не в домене, пользаки разные и не соответствуют пользователям, а среди данных что нам нужны есть фио и отдел пользователя машины. Приводить всё к красивостям и стандарту ввиду наличия лени и других задач не хочется, а данные надо сейчас.
Варианты:
Первый: правильный, красивый, надо много работать руками, и сначала привести в порядок уже имеющийся парк. Подал: http://joyreactor.cc/user/chuma. https://www.total-network-inventory.ru/ Красивая реально клёвая штука. Бегаем по пользакам\выпрашиваем возможность подключиться и создаём на каждой тачке админского пользака с некоторым логопассом, открываем 445 tcp, вбиваем диапазон адресов, наслаждаемся офигенски детализированной инвентой. Не решает вопросов с тем, что фио пользака не соответствует имени усера, но это решаемо просьбой запустить скрипт который я приведу ниже, свяжем ip и пользователя машины. Ну или в процессе создания учеток для инвенты это можно провернуть.
Скрипт:
@echo off
set /p UserInputData=vashe fio i otdel BEZ PROBELOV:
ipconfig /all | find "IPv4" > echo > \\vash_server\inventory\%UserInputData%.txt
Cmd не хавает пробелы, так-что вводим через _. Можно было поиграться и добиться наличия пробелов наверное, но это во-первых не страшно, во вторых играться с кодировками на разных тачках невесело. Получаем тхт файлы проименованные фио и отделами пользаков, внутри которых строка с их ipшником. В табличке связываем данные, готово. Найс. Но не таков мой путь, по крайней мере не сейчас. Потом обязательно надо будет приобрести эту прогу, будет очень красиво. Переходим к следующим вариантам.
Подал: http://joyreactor.cc/user/Asmyshlyaev177. В общем-то я и так смотрел в сторону скрипта запускающего аиду. Пишем скрипт, собираем папку "инвентаризация", внутри батник запускающий аиду со вписанными параметрами, батник же пишет в сетевую папку. Однако, изначально у меня этот вариант не работал, при казалось бы, правильных аргументах. Оказалось, аргументы правильные, аида неправильная. Вывод: не доверяйте безусловно одному варианту программы, попробовать другие тоже стоит.
Скрипт:
@echo off
set /p UserInputData=vashe fio i otdel BEZ PROBELOV:
start .\AIDA64\aida64.exe /R .\result\%UserInputData% /HTML /CUSTOM .\AIDA64\report.rpf
timeout /t 120 /nobreak #пауза чтобы успела отработать аида перез запуском робокопи
robocopy .\result \\vash_server\inventory /E #собственно копирование результата инвертаризации
ключи экзешника: /R запуск отчета /HTML формат отчета /CUSTOM отчет берём не стандартный, а из .rpf файла, его можно сгенерировать запустив предварительно мастер отчетов, отбросив ненужные параметры, в стандартном многовато ненужного, например тесты, оно только тормозить бедную машину будет. Почему использовать robocopy а не сразу писать в целевую папку? Потому-что у меня почему-то при полностью открытых правах на эту сетевую папку туда писать сразу не смогло. Решил вопрос robocopy.
Итого, собираем папку в которой: есть папка с .exe аиды. В неё же кладём кастомный .rpf. Рядом с папкой аиды делаем папку result в которую будет ложиться результат инвенты. Рядом со всем этим кладём батник. Скидываем пользакам любым способом, просим запустить. Им выкидывается консоль с просьбой ввести фио и отдел, они вводят, аида отрабатывает инвертаризацию, именует файл данными которые ввёл пользак, затем робокопи копирует его в вашу сетевую (или не очень) папку, оттуда забираете всё готовое.
Понимаю что оно всё более прошаренным ребятам не надо, но нам, туповатым эникеям тоже надо как-то жить и плодить свои костыли, чтобы потом на них учиться)
Отдельная благодарность http://joyreactor.cc/user/opie, который откликнувшись аж заморочился на написание под это дело проги на настоящем взаправдашнем языке. Страница на GitHub: https://github.com/mnocard/ConsoleApp1
Ну и вдогонку, вот вам мои ленивые скрипты для разворота тачек на 9м дебе, когда лень копипастить со страниц документации
proxmox 5 на debian 9 stretch:
#!/bin/bash
echo -e "\e[32mINSTALL PROXMOX SCRIPT\e[0m"
echo "s for start proxmox installation"
echo "e for exit"
read doing
case $doing in
s)
echo -e "\e[32mSTARTING INSTALLATION\e[0m"
ip=$(ip r l | grep -oE '\b[0-9]{1,3}(\.[0-9]{1,3}){3}\b' | tail -1)
#строка для переменной находящей локальный ip машины
hostname=$(hostname)
#находим имя хоста
echo -e "127.0.0.1 localhost.localdomain localhost\n$ip $hostname.proxmox.com $hostname\n# The following lines are desirable for IPv6 capable hosts\n::1 localhost ip6-localhost ip6-loopback\nff02::1 ip6-allnodes\nff02::2 ip6-allrouters" > /etc/hosts
#изменяем файл hosts
hostname --ip-address > 1
if grep $ip ./1
#проверяем корректность изменения хостс файла
then
echo -e "\e[32mHOSTS FILE CORRECTLY REDACTED STARTING INSTALLATION\e[0m"
sleep 5
rm ./1
echo "deb http://download.proxmox.com/debian/pve stretch pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-5.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
chmod +r /etc/apt/trusted.gpg.d/proxmox-ve-release-5.x.gpg
# optional, if you have a changed default umask
apt update && apt dist-upgrade --yes
deb [arch=amd64] http://download.proxmox.com/debian/pve stretch pve-no-subscription
apt install proxmox-ve postfix open-iscsi --yes
echo -e "\e[32mSUCCESSFULLY DONE! WAIT UNTIL SYSTEM REBOOTED!\e[0m"
sleep 5
apt remove os-prober --yes
echo # > /etc/apt/sources.list.d/pve-enterprise.list
#удаляем платный репозиторий
reboot now
else
echo -e "\e[40m HOSTS FILE REDACTED UNSUCCESSFULLY, REDACT HOSTS FILE AND SCRIPT\e[0m"
sleep 10
rm ./1
exit 0
fi
;;
e)
exit 0
;;
*)
echo "wrong key"
esac
OMV на debian 9 stretch:
#!/bin/bash
echo "omv install script"
echo "s start"
echo "e exit"
read doing
case $doing in
s)
echo "starting install"
apt-get update
apt-get install --yes apt-transport-https
cat <<EOF >> /etc/apt/sources.list.d/openmediavault.list
deb https://packages.openmediavault.org/public arrakis main
deb https://downloads.sourceforge.net/project/openmediavault/packages arrakis main
deb https://packages.openmediavault.org/public arrakis-proposed main
deb https://downloads.sourceforge.net/project/openmediavault/packages arrakis-proposed main
deb https://packages.openmediavault.org/public arrakis partner
deb https://downloads.sourceforge.net/project/openmediavault/packages arrakis partner
EOF
export LANG=C
export DEBIAN_FRONTEND=noninteractive
export APT_LISTCHANGES_FRONTEND=none
apt-get update
apt-get --allow-unauthenticated install openmediavault-keyring
apt-get update
apt-get --yes --auto-remove --show-upgraded \
--allow-downgrades --allow-change-held-packages \
--no-install-recommends \
--option Dpkg::Options::="--force-confdef" \
--option DPkg::Options::="--force-confold" \
install postfix openmediavault
omv-initsystem
echo "omv installed sucessfuly"
exit 0
;;
e)
echo "script stopped"
exit 0
esac
Опять же, эти скрипты легко заменяются копипастой ручками комманд со страниц документации, но оно же красивее и удобней когда есть скрипт)
Благодарю всех помогавших глубокоуважаемых пидоров, надеюсь помог кому-нибудь со сходным родом деятельности и проблемами.