3 niesamowite rzeczy, które możesz zrobić dzięki skryptom Windows

  • Edmund Richardson
  • 0
  • 2400
  • 208
Reklama

Niezależnie od tego, czy pracujesz w branży IT, jako projektant stron internetowych, czy jesteś studentem lub zwykłym pracownikiem biurowym, Windows Scripting ma coś do zaoferowania. Oczywiście Applescript Jak korzystać ze skryptów interfejsu użytkownika Apple na Macu Jak korzystać ze skryptów interfejsu użytkownika Apple na Macu, ale w tym przypadku skupiam się na Windowsie. Kiedy mówię o skryptach systemu Windows, mam na myśli pliki tekstowe wypełnione kodem, które są zapisywane jako pliki .wsf, które Windows może skompilować i uruchomić w locie.

Prawie rok temu napisałem wprowadzenie do Windows Scripting Better Than Batch: A Windows Scripting Host Tutorial Better Than Batch: A Windows Scripting Host Tutorial, który pokazał, jak mocniejszy może być skrypt .wsf niż starsze zadania wsadowe, które Specjaliści IT pracują od lat w skryptach. WSF daje moc języka strukturalnego, takiego jak Visual Basic. Domyślnie możesz utworzyć plik VBScript lub JScript WSF w systemie Windows i będzie działał dobrze.

Oprócz tego artykułu wprowadzającego chciałem dziś zaoferować trzy typowe narzędzia, z których ludzie często korzystają zarówno w profesjonalnym środowisku informatycznym, jak i w domu. Te trzy narzędzia obejmują odczyt danych wejściowych z pliku tekstowego, pingowanie różnych urządzeń w sieci i wysyłanie wiadomości e-mail za pomocą skryptu.

Moc skryptów Windows

Nauczenie się każdego z tych mniejszych komponentów pozwoli ci połączyć je w większy, zautomatyzowany skrypt. Zamierzam przejrzeć małe próbki skryptu, które można połączyć w bardzo fajny automatyczny skrypt. Skrypt ten pobierze wejściową listę adresów IP z pliku tekstowego, pinguje każde z tych urządzeń, a następnie wysyła wiadomość e-mail z ostrzeżeniem, jeśli któreś z nich jest wyłączone.

Odczytywanie plików wejściowych

Pierwszym krokiem w tym procesie jest nauczenie się, jak czytać i przetwarzać informacje z wejściowego pliku tekstowego. W tym przypadku utworzyłem plik tekstowy o nazwie IPlist.ini który znajduje się w tym samym katalogu co skrypt. Ten plik zawiera listę wszystkich adresów IP, które chcę sprawdzić. Możesz przeczytać w każdym wierszu pliku tekstowego, używając następującego skryptu.

  Opcja Wyraźnie przy błędzie Wznów dalej
Dim strHost Dim strCommand Dim ReturnCode Dim strLine Dim oFSO, sFile, oFile, sText
Ustaw Shell = wscript.createObject ("wscript.shell") Ustaw oFSO = CreateObject ("Scripting.FileSystemObject") sFile = "c: \ users \ owner \ scripts \ IPlist.ini" Jeśli oFSO.FileExists (sFile) Następnie ustaw oFile = oFSO.OpenTextFile (sFile, 1) Nie wykonuj oFile.AtEndOfStream sText = oFile.ReadLine If Trim (sText) - Następnie strCommand = sText wscript.echo "Adres IP to:" & sText End If Loop oFile.Close
W przeciwnym razie WScript.Echo „Plik nie istniał”. End If WScript.Quit  

To, co robi ten kod, polega na użyciu obiektu systemu plików Windows do otwarcia pliku, a następnie odczytuje jeden wiersz tekstu na raz, aż dojdzie do końca pliku.

Pingowanie hosta

Teraz, gdy wiesz, jak odczytać każdy adres IP z pliku tekstowego, jak zabrać się za wykonywanie polecenia ping za pomocą skryptów systemu Windows?

Pingowanie jest nieco bardziej skomplikowane niż czytanie w pliku tekstowym, ponieważ musisz skorzystać ze skryptów Instrumentacji Zarządzania Windows (WMI). Oto jak to wygląda.

  Opcja Wyraźnie przy błędzie Wznów dalej
Dim colPingResults, objPingResult, strQuery Dim strIPtext strIPtext = "192.168.1.105"
'Zapytanie WMI strQuery = "SELECT * FROM Win32_PingStatus WHERE Address ='" & strIPtext & "'"
Ustaw colPingResults = GetObject ("winmgmts: //./root/cimv2") .ExecQuery (strQuery)
„Przetłumacz wyniki zapytania
Dla każdego objPingResult w colPingResults Jeśli nie IsObject (objPingResult) Następnie Ping = False wscript.echo strIPtext & "nie jest pingowany" ElseIf objPingResult.StatusCode = 0 Następnie Ping = True wscript.echo strIPtext & "jest pingowalny" W przeciwnym razie ping echo strIPtext & "is not pinging" End If Next Set colPingResults = Nic WScript.Quit  

Widzisz jakie to było proste? Po uruchomieniu wyświetla wyskakujące okienko określające, czy adres IP można pingować, czy nie.

W tym skrypcie wysłałem polecenie ping tylko do jednego adresu IP, ale wszystko, co musisz zrobić, to osadzić to polecenie ping w poprzednim skrypcie po wczytaniu każdego adresu IP z pliku tekstowego i możesz pingować każdy adres IP z listy.

Wysyłanie wiadomości e-mail

Wreszcie, chociaż miło jest mieć skrypt, który można uruchomić, który sprawdza adresy IP i wyskakuje okienko w przypadku wystąpienia błędów, czy nie byłoby miło uruchamiać skrypt codziennie lub kilka razy dziennie i mieć go automatycznie wysyła wiadomości e-mail z problemami?

Aby to zrobić, musisz wiedzieć, jak wysłać wiadomość e-mail w ramach skryptu. Jeśli przeprowadzisz badania online, odkryjesz dziesiątki (lub więcej) sposobów, w jaki ludzie to osiągają. Zdecydowanie najbardziej popularne jest stosowanie podejścia CDO.

  Opcja Wyraźnie przy błędzie Wznów dalej
Const fromEmail = "[email protected]" Const hasło = "xxxxxxxx"
Dim emailObj, emailConfig Ustaw emailObj = Utwórz obiekt („CDO.Message”) emailObj.From = [email protected] emailObj.To = „[email protected]” emailObj.Subject = „Testuj e-mail” emailObj.TextBody = ”Działa !! ”
Ustaw 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/configuracja / sendusername ") = fromEmail emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") = hasło emailConfig.Fields.Update emailObj.Send Ustaw emailobj = nic Ustaw emailConfig = nic WScript.Quit
 

Powyższy skrypt umożliwia wysłanie dowolnego tekstu wiadomości e-mail na dowolny adres przy użyciu poświadczeń Gmaila. Możesz zmodyfikować parametry, aby użyć dowolnego innego serwera poczty SMTP, który ci się podoba.

Teraz wszystko, co musisz zrobić, to połączyć te trzy części kodu razem. Gdy to zrobisz, skrypt odczyta na każdej liście adresów IP, pinguje każdy z nich, a następnie wysyła ten ciąg znaków jako treść wiadomości na wiadomość e-mail z powiadomieniem. Oto jak będzie wyglądał ten e-mail.

Jak możesz sobie wyobrazić, staje się to bardzo przydatne w świecie IT, gdzie masz nieskończoną listę urządzeń i serwerów, na które masz oko, i tylko 24 godziny na dobę. Za każdym razem, gdy możesz mieć zautomatyzowane skrypty, które mogą sprawdzać twoje rzeczy, zrób to.

Wypróbuj te skrypty systemu Windows i sprawdź, czy pomoże to zoptymalizować pracę i zwiększyć wydajność. Czy znasz jakieś inne fajne rzeczy, które możesz zrobić dzięki skryptom systemu Windows? Podziel się swoimi przemyśleniami w sekcji komentarzy poniżej.

Zdjęcie: Mario Alberto Magallanes Trejo




Jeszcze bez komentarzy

O nowoczesnej technologii, prostej i niedrogiej.
Twój przewodnik w świecie nowoczesnych technologii. Dowiedz się, jak korzystać z technologii i gadżetów, które nas otaczają każdego dnia i dowiedz się, jak odkrywać ciekawe rzeczy w Internecie.