Проверка Подключен Ли ПК к сети

Шаблоны под операционную систему Windows
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 804
Стаж: 5 лет 1 месяц
Откуда: Вологодская область
Поблагодарили: 33 раза
Контактная информация:

Проверка Подключен Ли ПК к сети

Сообщение Артём Мамзиков »

В нашем пример мы проверяем подключен ли к сети Резервный ПК. Нужно нам это если с ремонта отправлен обычный ПК, а резервный продолжают использовать дальше.

Резервный ПК работает на Windows имеет имя в сети RezervXX ХХ-номер района

Перезалито 23.03.2021 добавлены другие рабочие группы и способ с пингом по имени
Скачать
Proverka-rezerv.bat.zip
Proverka-rezerv.bat.zip
(2.64 КБ) 40 скачиваний
Сделан следующий скрипт на cmd

Для разных рабочих групп, и 2-ой способ пингом по имени
@echo off
color 1a

:: Планировщик ежедневно в 10:11 11:35 14:49

::Получаем подсеть из DNS
chcp 1251 >NUL
::for /f "tokens=2 delims=:(" %%a in ('ipconfig /all^|FIND /I "DNS-"^|FIND /I ".5"') do set IPDNS=%%a
for /f "tokens=2 delims=:(" %%a in ('ipconfig /all^|FIND /I "192.168.1"') do set IPDNS=%%a
set IP=%IPDNS:~10,2%
:: Переменная если файл не найден ошибка
set good=0

:: Получаем текущую рабочую группу хоста |удаляем пустые строки с вывода
for /f "skip=1 delims=" %%b in ('wmic computersystem get domain^| findstr /r /v "^$"') do set GROUP=%%b

:: Перебор рабочих групп или доменов (через запятую), 2 цикл Проверяем подключен ли резервный ПК
for %%c in (%GROUP%,WORKGROUP,TEXHO,HOME) do (
for /f "delims=\ " %%d in ('net view /DOMAIN:%%c^|FIND /I "REZERV"') do (
if /i %%d == %%d (set good=1)))

:: Сюда попадает ответ переменной good 0 или 1 для сравнения
if %good% == 1 (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 2%IP%REZERV -o 1) else (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 2%IP%REZERV -o 0)

::Проверяем подключен ли резервный ПК предыдущие команды 18 строки
::for /f "delims= " %%d in ('net view^|FIND /I "REZERV"') do (
::for /f "delims=\ " %%d in ('net view^|FIND /I "REZERV"') do (

:: Проверка Пингом. Недоступность, строка символов "TTL" в выводимых результатах отсутствует. Если строка символов "TTL" найдена, то FIND сформирует значение переменной ERRORLEVEL равным 0
ping -n 1 -w 1000 REZERV%IP% | find /I "TTL" > nul
if %ERRORLEVEL%==0 (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 2%IP%REZERV -o 1) else (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 2%IP%REZERV -o 0)


Для одной рабочей группы в которой находятся хосты windows
@echo off
color 1a

:: Планировщик ежедневно в 10:11 11:35 14:49

::Получаем подсеть из DNS
chcp 1251 >NUL
::for /f "tokens=2 delims=:(" %%d in ('ipconfig /all^|FIND /I "DNS-"^|FIND /I ".5"') do set IPDNS=%%d
for /f "tokens=2 delims=:(" %%d in ('ipconfig /all^|FIND /I "192.168.1"') do set IPDNS=%%d
set IP=%IPDNS:~10,2%
:: Переменная если файл не найден ошибка
set good=0
::Проверяем подключен ли резервный ПК
::for /f "delims= " %%d in ('net view^|FIND /I "REZERV"') do (
for /f "delims=\ " %%d in ('net view^|FIND /I "REZERV"') do (
if %%d == %%d (set good=1))
:: Сюда попадает ответ переменной good 0 или 1 для сравнения
if %good% == 1 (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 1%IP%REZERV -o 1) else (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 1%IP%REZERV -o 0)



Предыдущая версия
Proverka-rezerv.bat
@echo off
color 1a

::Получаем подсеть из DNS или ищем нужную нам сеть и из нее получаем номер района xx
chcp 1251 >NUL
::for /f "tokens=2 delims=:(" %%d in ('ipconfig /all^|FIND /I "DNS-"^|FIND /I ".5"') do set IPDNS=%%d
for /f "tokens=2 delims=:(" %%d in ('ipconfig /all^|FIND /I "192.168.5"') do set IPDNS=%%d
set IP=%IPDNS:~10,2%
:: Переменная если файл не найден ошибка
set good=0
::Проверяем подключен ли резервный ПК
for /f "delims= " %%d in ('net view^|FIND /I "\\REZERV"') do (
if %%d == \\REZERV%IP% (set good=1))
:: Сюда попадает ответ переменной good 0 или 1 для сравнения
if %good% == 1 (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 5%IP%REZERV -o 1) else (zabbix_sender.exe -z 192.168.175.111 -p 10051 -s REZERV -k 5%IP%REZERV -o 0)

Далее Скрипт прописываем на сервера районов в планировщик заданий ежедневно

Далее я создал группу REZERV и Узел Имя узла REZERV Видимое имя Проверка подключения Резервных ПК
Узел для проверки Резервных ПК.jpg
Узел для проверки Резервных ПК.jpg
Далее создаем элементы данных они все одинаковые только отличается номер района ХХ (можно делать клонированием меняя номер района)

Элемент данных
Имя Проверка Подключения Rezerv ПК 501
Тип Zabbix траппер
Ключ 501REZERV
Тип информации Числовой (Целое положительное)
Период хранения истории 90
Период хранения динамики изменений 90
Описание
Проверка подключен ли резервный ПК
Активировано V
Элемент для проверки Резервного ПК.jpg
Элемент для проверки Резервного ПК.jpg
Далее Создаем Триггер если подключен значение 1 если нет 0 так же если нет никаких данных более 3х дней так же срабатывает
Имя Подключен Резервный ПК 501
Важность Информационная
Выражение
{REZERV:501REZERV.max(1d)}=1 or
{REZERV:501REZERV.nodata(3d)}=1
Описание
Подключен Резервный ПК 501
Последнее значение: {ITEM.VALUE} {ITEM.LASTVALUE} ({TIME})
Активировано V
Триггер для проверки Резервного ПК.jpg
Триггер для проверки Резервного ПК.jpg
количество слов: 529

Вернуться в «Windows, Server»