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

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

тоже хорошо, но в данном случае я фокусируюсь на Windows. Когда я ссылаюсь на Windows Scripting, я имею в виду текстовые файлы, заполненные кодом, которые сохраняются как файлы .wsf, которые Windows может компилировать и запускать на лету.

Почти год назад я написал введение в Windows Scripting

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

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

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

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

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

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

Option Explicit
On Error Resume Next
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"
If oFSO.FileExists(sFile) Then
Set oFile = oFSO.OpenTextFile(sFile, 1)
Do While Not oFile.AtEndOfStream
sText = oFile.ReadLine
If Trim(sText)  - Then
strCommand = sText
wscript.echo "IP Address is: " & sText
End If
Loop
oFile.Close
Else
WScript.Echo "The file was not there."
End If
WScript.Quit

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

Pinging A Host

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

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

Option Explicit
On Error Resume Next
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 )
' Translate query results
For Each objPingResult In colPingResults
If Not IsObject( objPingResult ) Then
Ping = False
wscript.echo strIPtext & " is not pingable"
ElseIf objPingResult.StatusCode = 0 Then
Ping = True
wscript.echo strIPtext & " is pingable"
Else
Ping = False
wscript.echo strIPtext & " is not pingable"
End If
Next
Set colPingResults = Nothing
WScript.Quit

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

Скрипты Windows

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

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

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

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

Option Explicit
On Error Resume Next
Const fromEmail = "rdxxxx@gmail.com"
Const password = "xxxxxxxx"
Dim emailObj, emailConfig
Set emailObj = CreateObject("CDO.Message")
emailObj.From = alert@topsecretwriters.com
emailObj.To = "rdxxxxx@gmail.com"
emailObj.Subject = "Test Email"
emailObj.TextBody = "It Works!!"
Set 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") = password
emailConfig.Fields.Update
emailObj.Send
Set emailobj = nothing
Set emailConfig = nothing
WScript.Quit

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

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

Скрипты Windows

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

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

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

Ссылка на основную публикацию
Adblock
detector