VBS скрипт диагностики внутренней сети

Всем привет в этой статье я расскажу как написать VBS скрипт диагностики внутренней сети. Т.е. этот скрипт хорошо использовать системному администратору для диагностики.

Этот скрипт проверки работоспособности сетевых сервисов. Очень удобно, когда приходишь на работу утром, запустил скриптик и результат на лицо))

Результат VBS скрипта после диагностики внутренней сети
Результат VBS скрипта после диагностики внутренней сети

Ну это при условии, если Вы не хотите устанавливать “жадное ПО”. Впрочем можно доделать под свои нужды, если будут пожелания, пишите в комментариях.

Текст ниже можно скопировать в текстовый файлик и пересохранить с расширением *.vbs. После такой манипуляции текстовый файл превратится в скрипт. Если вам все же не хочется это делать, тогда вы можете его скачать. Ссылка в конце статьи.

VBS скрипт диагностики сети

status = vbInformation
StrKar = CHR (13) + CHR (10) ' Перенос каретки
myStr = "Диагностика сети v1.0:" + StrKar

'------------------------
' Пример Ping()
'------------------------
myStr = myStr + StrKar + "Серверы:" + StrKar
If ping("10.0.0.111") then
myStr = myStr + "Сервер - шлюз - [OK]" + StrKar
Else
myStr = myStr + "Сервер шлюз - [недоступен!!!]" + StrKar
status = vbCritical
end if

myStr = myStr + StrKar + "Сервисы:" + StrKar
If ping("ya.ru") then
myStr = myStr + "Интернет (ya.ru) - [OK]" + StrKar
Else
myStr = myStr + "Интернет (ya.ru) - [недоступен!!!]" + StrKar
status = vbCritical
end if

myStr = myStr + StrKar + "Сервисы:" + StrKar
If ping("10.0.0.211") then
myStr = myStr + "DNS, domain (10.0.0.211) - [OK]" + StrKar
Else
myStr = myStr + "DNS, domain (10.0.0.211) - [недоступен!!!]" + StrKar
status = vbCritical
end if

myStr = myStr + StrKar + "Сервисы:" + StrKar
If ping("10.0.0.31") then
myStr = myStr + " (10.0.0.31) - [OK]" + StrKar
Else
myStr = myStr + "Интернет (10.0.0.31) - [недоступен!!!]" + StrKar
status = vbCritical
end if

myStr = myStr + StrKar + "Сервисы:" + StrKar
If ping("10.0.0.41") then
myStr = myStr + " (10.0.0.41) - [OK]" + StrKar
Else
myStr = myStr + "Интернет (10.0.0.41) - [недоступен!!!]" + StrKar
status = vbCritical
end if

myStr = myStr + StrKar + "Сервисы:" + StrKar
If ping("10.0.0.50") then
myStr = myStr + " (10.0.0.50) - [OK]" + StrKar
Else
myStr = myStr + "Интернет (10.0.0.5) - [недоступен!!!]" + StrKar
status = vbCritical
end if

'----------------------------
' Пример nslookup()
'----------------------------
If Nslookup("meta.ua") then
myStr = myStr + "DNS Server (nslup meta.ua) - [OK]" + StrKar
Else
myStr = myStr + "DNS Server (nslkup meta.ua) - [недоступен!!!]" + StrKar
status = vbCritical
end if

'----------------------------
' Пример IsAPIPA()
'----------------------------
if IsAPIPA then
myStr = myStr + StrKar + "Дополнительно:" + StrKar + "IP адрес - [APIPA!!!]" + StrKar
myStr = myStr + "Внимание. Обнаружен некорректный ip адрес!!!" + StrKar
myStr = myStr + "Перезагрузите компьютер. Если проблема повторится, проверьте доступность DHCP сервера либо назначьте ip адрес вручную" + StrKar
myStr = myStr + "Примечание: Если при этом у вас прекрасно работает сеть, считайте данное сообщение ошибочным" + StrKar
else
myStr = myStr + StrKar + "Дополнительно:" + StrKar + "IP адрес - [OK] (Не APIPA)" + StrKar
end if

'----------------------------
' Вывод результатов
'----------------------------
msgbox myStr, status, "Результаты:"

'------------------
' Функции
'------------------
Function Ping(strAddr)
' Проверяем доступность компьютера с помощью команды PING
Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("%comspec% /c ping.exe -n 1 " & strAddr)
strPingResults = LCase(objScriptExec.StdOut.ReadAll)

' Возвращаем результат:
Ping = InStr(strPingResults, "ttl=")
End Function

Function Nslookup(strAddr)
' Проверяем работу DNS сервера через nslookup
Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("%comspec% /c nslookup.exe -q=mx " & strAddr)
strNslookupResults = LCase(objScriptExec.StdOut.ReadAll)

' Возвращаем результат:
Nslookup = InStr(strNslookupResults, "mail")
End Function

Function IsAPIPA()
' Проверяет, нет ли сетевых карт, получивших APIPA адрес
Set objShell = CreateObject("WScript.Shell")
Set objScriptExec = objShell.Exec("%comspec% /c ipconfig /all")
strIsAPIPAResults = LCase(objScriptExec.StdOut.ReadAll)

' Возвращаем результат:
IsAPIPA = InStr(strIsAPIPAResults, "169.254.")
End Function

Скачать готовый скрипт VBS для диагностики сети

Готовый скрипт VBS

Так же рекомендую посмотреть статью ping с записью в файл. Эта статья рассказывает о том как команду ping записать в текстовый документ.

Nazario

Я — Nazario, создатель и автор сайта linuxwin.ru, специализируюсь на информационных технологиях с акцентом на системное администрирование Linux и Windows, веб-разработку и настройку различных систем.

Linux и Windows
Выскажите своё мнение или присоединяйтесь к обсуждению:

Отправляя комментарий, вы даете согласие на обработку ваших данных в соответствии с политикой конфиденциальности и даёте согласие на их использование.