Всем привет в этой статье я расскажу как написать 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 для диагностики сети
Так же рекомендую посмотреть статью ping с записью в файл. Эта статья рассказывает о том как команду ping записать в текстовый документ.