3 Fantastiske ting, du kan gøre med Windows-scripting

  • Gabriel Brooks
  • 0
  • 1885
  • 179
Reklame

Uanset om du arbejder inden for it-området, som webdesigner, eller om du bare er studerende eller almindelig kontorarbejder, har Windows Scripting noget at tilbyde dig. Naturligvis Applescript Sådan bruges Applescript's UI-scripting på Mac Sådan bruges Applescript's UI-scripting på Mac gør det også, men mit fokus i dette tilfælde er på Windows. Når jeg henviser til Windows-scripting, henviser jeg til tekstfiler udfyldt med kode, der er gemt som .wsf-filer, som Windows er i stand til at kompilere og køre på farten.

For næsten et år siden skrev jeg nu en introduktion til Windows Scripting Better Than Batch: En Windows Scripting-host-tutorial Better Than Batch: En Windows-scripting-host-tutorial, der viste, hvor meget mere kraftfuldt et .wsf-script kan være end de ældre stil batchjobs, der IT-fagfolk har skrevet og kørt i årevis. WSF giver dig kraften i et struktureret sprog som Visual Basic. Som standard kan du oprette en VBScript eller JScript WSF-fil på Windows, og den kører helt fint.

Ud over den indledende artikel, ville jeg i dag tilbyde tre typiske værktøjer, som folk ofte bruger både i et professionelt it-miljø såvel som hjemme. Disse tre værktøjer inkluderer læsning af input fra en tekstfil, pinging af forskellige enheder på dit netværk og afsendelse af e-mail via script.

Kraften ved Windows-scripting

Hvad man lærer hver af disse mindre komponenter, er at give dig mulighed for at kombinere dem i et større, automatisk script. Jeg vil gennemgå små scripteksempler, som du kan sammensætte til et meget cool automatiseret script. Hvad scriptet gør, er at tage en IP-liste med indtastning fra en tekstfil, pinge på hver af disse enheder og derefter sende en e-mail, hvis nogen af ​​disse enheder er nede.

Læse inputfiler

Det første trin i denne proces er at lære at læse og behandle information fra en inputtekstfil. I dette tilfælde har jeg oprettet en tekstfil, der hedder IPlist.ini der findes i det samme bibliotek som scriptet. Denne fil indeholder en liste over alle de IP-adresser, jeg vil tjekke. Du kan læse i hver linje i en tekstfil ved hjælp af følgende script.

  Option eksplicit ved fejl Genoptag næste
Dim strHost Dim strCommand Dim ReturnCode Dim strLine Dim oFSO, sFile, oFile, sText
Indstil Shell = wscript.createObject ("wscript.shell") Sæt oFSO = CreateObject ("Scripting.FileSystemObject") sFile = "c: \ brugere \ ejer \ scripts \ IPlist.ini" Hvis oFSO.FileExists (sFile) Derefter Angiv oFile = oFSO.OpenTextFile (sFile, 1) Do While Not oFile.AtEndOfStream sText = oFile.ReadLine If Trim (sText) - Så strCommand = sText wscript.echo "IP-adresse er:" & sText End If Loop oFile.Close
Ellers WScript.Echo "Filen var ikke der." Afslut Hvis WScript.Quit  

Hvad denne kode gør er at bruge Windows-filsystemobjektet til at åbne en fil og derefter læse en tekstlinie ad gangen, indtil den når slutningen af ​​filen.

Pinging en vært

Nu hvor du ved, hvordan du læser hver IP-adresse ud af tekstfilen, hvordan skal du gøre ved at udføre en Ping med Windows-scripting?

Pinging er lidt mere kompliceret end læsning i en tekstfil, fordi du er nødt til at gøre brug af Windows Management Instrumentation scripting (WMI). Her ser det ud.

  Option eksplicit ved fejl Genoptag næste
Dim colPingResults, objPingResult, strQuery Dim strIPtext strIPtext = "192.168.1.105"
'WMI forespørgsel strQuery = "VÆLG * FRA Win32_PingStatus WHERE Adresse ='" & strIPtext & "'"
Indstil colPingResults = GetObject ("winmgmts: //./root/cimv2") .ExecQuery (strQuery)
'Oversæt forespørgselsresultater
For hvert objPingResult I colPingResults Hvis ikke IsObject (objPingResult) Så er Ping = Falsk wscript.echo strIPtext & "ikke pingelig" ElseIf objPingResult.StatusCode = 0 Derefter er Ping = Sand wscript.echo strIPtext & "pingbar" Else Ping =se. ekko strIPtext & "kan ikke pinges" Slut Hvis næste sæt colPingResults = Intet WScript.Quit  

Se hvor let det var? Når jeg kører det, giver det en pop-up til, om IP'en kunne pinges eller ej.

I dette script har jeg kun pinget en enkelt IP-adresse, men alt hvad du skal gøre er at integrere det ping i det forrige script, efter at hver IP-adresse er læst ind fra tekstfilen, og du kan pinge hver IP-adresse på din liste.

Sender en e-mail

Endelig, selvom det er rart at have et script, som du kan køre, der tjekker IP-adresser og pop-up et vindue, hvis der er nogen fejl, ville det ikke være rart at køre scriptet dagligt eller flere gange om dagen og have det automatisk e-mail med problemer?

For at gøre det, skal du vide, hvordan du sender en e-mail i scriptet. Hvis du undersøger online, vil du opdage snesevis (eller flere) måder, folk gør på dette. Langt den mest populære bruger CDO-fremgangsmåden.

  Option eksplicit ved fejl Genoptag næste
Const fraEmail = "[email protected]" Const adgangskode = "xxxxxxxx"
Dim emailObj, emailConfig Indstil emailObj = CreateObject ("CDO.Message") emailObj.From = [email protected] emailObj.To = "[email protected]" emailObj.Subject = "Test e-mail" emailObj.TextBody = "Det fungerer !!"
Indstil emailConfig = emailObj.Configuration emailConfig.Fields ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" emailConfig.Fields ("http://schemas.microsoft.com / cdo /iguration / smtpserverport ") = 465 emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/sendusing ") = 2 emailConfig.Fields (" http://schemas.microsoft.com/cdo /iguration / smtpauthenticate ") = 1 emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/smtpusessl ") = true emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration / sendusname ") = fromEmail emailConfig.Fields (" http://schemas.microsoft.com/cdo/configuration/sendpassword ") = password emailConfig.Fields.Update emailObj.Send Sæt emailobj = intet Indstil emailConfig = intet WScript.Quit
 

Ovenstående script giver dig mulighed for at sende enhver tekst til meddelelsesorganet som en e-mail til enhver adresse, der bruger dine Gmail-legitimationsoplysninger. Du kan ændre parametrene til at bruge en hvilken som helst anden SMTP-mailserver.

Nu skal du bare sætte de tre kodestykker sammen. Når du gør det, vil scriptet læse på hver liste over IP-adresser, pinge hver enkelt, og derefter sende den streng som meddelelsesorganet til en meddelelses-e-mail. Sådan ser den e-mail ud.

Som du kan forestille dig, bliver dette temmelig nyttigt i it-verdenen, hvor du har en uendelig liste over enheder og servere at holde øje med og kun 24 timer i døgnet. Hver gang du kan have automatiserede scripts, der kan kontrollere tingene for dig, skal du gøre det.

Prøv disse Windows-scripts og prøv, om det hjælper dig med at optimere dit arbejde og gøre tingene mere effektive. Kender du til andre seje ting, du kan gøre med Windows Scripting? Del dine tanker i kommentarfeltet nedenfor.

Billedkredit: Mario Alberto Magallanes Trejo




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.