3 Потрясающие вещи, которые вы можете сделать с помощью сценариев Windows

  • Michael Cain
  • 0
  • 836
  • 93
Реклама

Работаете ли вы в области ИТ, веб-дизайнером или просто являетесь студентом или обычным офисным работником, у Windows Scripting есть что предложить. Конечно, Applescript Как использовать скрипты пользовательского интерфейса Applescript на Mac Как использовать скрипты пользовательского интерфейса Applescript на Mac, но я сосредоточен в этом случае на Windows. Когда я ссылаюсь на Windows Scripting, я имею в виду текстовые файлы, заполненные кодом, которые сохраняются как файлы .wsf, которые Windows может компилировать и запускать на лету..

Почти год назад я написал введение в Windows Scripting Betan Than Batch: Учебник Windows Scripting Host лучше, чем Batch: Учебник Windows Scripting Host, который показал, насколько более мощным может быть сценарий .wsf, чем пакетные задания более старого стиля, которые ИТ-специалисты работают над сценариями и работают в течение многих лет. WSF дает вам возможность структурированного языка, такого как Visual Basic. По умолчанию вы можете создать VBScript или JScript WSF-файл в Windows, и он будет работать нормально.

Помимо этой вводной статьи, сегодня я хотел предложить три типичных инструмента, которые люди часто используют как в профессиональной ИТ-среде, так и дома. Эти три инструмента включают чтение ввода из текстового файла, проверку связи с различными устройствами в сети и отправку электронной почты с помощью сценария..

Сила сценариев Windows

Изучение каждого из этих небольших компонентов позволит вам объединить их в более крупный автоматизированный сценарий. Я собираюсь пройтись по небольшим образцам сценариев, которые вы можете собрать в очень крутой автоматический сценарий. То, что будет делать этот скрипт, это взять список входных IP-адресов из текстового файла, пропинговать каждое из этих устройств, а затем отправить электронное письмо с предупреждением, если какое-либо из этих устройств не работает.

Чтение входных файлов

Первым шагом в этом процессе является изучение того, как читать и обрабатывать информацию из входного текстового файла. В этом случае я создал текстовый файл с именем IPlist.ini который находится в том же каталоге, что и скрипт. Этот файл содержит список всех IP-адресов, которые я хочу проверить. Вы можете прочитать в каждой строке текстового файла, используя следующий скрипт.

  Параметр Явный при ошибке Возобновить Далее
Dim strHost Dim strCommand Dim ReturnCode Dim strLine Dim oFSO, sFile, oFile, sText
Set Shell = wscript.createObject ("wscript.shell"). Set oFSO = CreateObject ("Scripting.FileSystemObject") sFile = "c: \ users \ owner \ scripts \ IPlist.ini" Если oFSO.FileExists (sFile), то установить oFile. = oFSO.OpenTextFile (sFile, 1) Делать пока не oFile.AtEndOfStream sText = oFile.ReadLine If Trim (sText) - Тогда strCommand = sText wscript.echo "IP-адрес:" & sText End If Loop oFile.Close
Остальное WScript.Echo "Файл не был там." End If WScript.Quit  

Этот код использует объект файловой системы Windows для открытия файла, а затем читает по одной строке текста за раз, пока не достигнет конца файла..

Pinging A Host

Теперь, когда вы знаете, как читать каждый IP-адрес из текстового файла, как вы выполняете Ping с использованием сценариев Windows?

Проверка связи немного сложнее, чем чтение в текстовом файле, потому что вы должны использовать сценарии инструментария управления Windows (WMI). Вот как это выглядит.

  Параметр Явный при ошибке Возобновить Далее
Dim colPingResults, objPingResult, strQuery Dim strIPtext strIPtext = "192.168.1.105"
'WMI query strQuery = "SELECT * FROM Win32_PingStatus WHERE Address ='" & strIPtext & "'"
Set colPingResults = GetObject ("winmgmts: //./root/cimv2") .ExecQuery (strQuery)
Перевести результаты запроса
Для каждого объекта objPingResult В colPingResults, если не IsObject (objPingResult), то Ping = False wscript.echo strIPtext & "не является pingable" ElseIf objPingResult.StatusCode = 0 Тогда Ping = True wscript.echo strIPtext & Else ping. echo strIPtext & "not pingable" End If Next Установить colPingResults = Nothing WScript.Quit  

Видишь, как легко это было? Когда я запускаю его, появляется всплывающее окно с информацией о том, был ли IP проверен или нет.

В этом сценарии я пропинговал только один IP-адрес, но все, что вам нужно сделать, это вставить этот пинг в предыдущий скрипт после того, как каждый IP-адрес будет считан из текстового файла, и вы можете пропинговать каждый IP-адрес в своем списке.

Отправка электронной почты

Наконец, хотя хорошо иметь скрипт, который вы можете запустить, который будет проверять IP-адреса и всплывающее окно, если есть какие-либо ошибки, было бы неплохо запускать скрипт ежедневно или несколько раз в день и иметь его автоматически по электронной почте с проблемами?

Для этого вам нужно знать, как отправить письмо в скрипте. Если вы исследуете онлайн, вы обнаружите десятки (или более) способов, которыми люди достигают этого. Безусловно, самым популярным является использование подхода CDO.

  Параметр Явный при ошибке Возобновить Далее
Const fromEmail = "[email protected]" Const password = "xxxxxxxx"
Dim emailObj, emailConfig Установить emailObj = CreateObject ("CDO.Message") emailObj.From = [email protected] emailObj.To = "[email protected]" emailObj.Subject = "Тестировать электронную почту" emailObj.TextBody = "Это работает !!»
Установите emailConfig = emailObj.Configuration emailConfig.Fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" emailConfig.Fields ("http://schemas.microsoft.com" / cdo / configuration / smtpserverport ") = 465 emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/sendusing ") = 2 emailConfig.Fields (" http://schemas.microsoft.com/cdo / configuration / smtpauthenticate ") = 1 emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/smtpusessl ") = true emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration / sendusername ") = fromEmail emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") = пароль emailConfig.Fields.Update emailObj.Send Установить emailobj = ничто Установить emailConfig = ничто WScript.Quit
 

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

Теперь все, что вам нужно сделать, это собрать эти три куска кода вместе. Когда вы это сделаете, скрипт будет читать каждый список IP-адресов, пинговать каждый из них, а затем отправлять эту строку в качестве тела сообщения на электронное письмо с уведомлением. Вот как будет выглядеть это письмо.

Как вы можете себе представить, это становится довольно полезным в мире ИТ, где у вас есть бесконечный список устройств и серверов, за которыми нужно следить, и только 24 часа в сутки. В любое время у вас могут быть автоматизированные сценарии, которые могут проверять вещи для вас, делайте это.

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

Изображение предоставлено: Марио Альберто Магалланес Трехо




О современных технологиях, просто и доступно.
Ваш гид в мире современных технологий. Узнайте как использовать технологии и гаджеты, которые нас окружают каждый день и научитесь открывать интересные вещи в Интернете.