Jump to content
Sign in to follow this  
LordSphynx

Script Works, need to know how to make it read my serverlist on and on again till EOF

Recommended Posts

LordSphynx

I have made a script that works like a charm for 1 server in my list, but it doesn't continue for the rest of the servers in my serverlist.txt file till EOF.

The original script (where it works for 1 server and then stops) is:

#comments-start 

Script Name:            CheckAlive
Script Version:         1.0
Script Creation:        22/08/2007
Script Description:     CheckAlive is a Server Testing Script for a Windows Environment.  It checks the availability of servers and results with the IP Address and the RIB card.
Script Steps:

01/  Check in AD if the server exists
02/  Checks if the server responds to Ping
03/  Retrieves the IP address and the RIB-IP Address for the server

#comments-end

; Includes
#include <File.au3>
#include <GuiConstants.au3>
#include <adfunctions.au3>

; Definitions
$scriptname = "CheckAlive v1.00"
$logo = "C:\$1\scripts\CheckAlive\img\logo.bmp"
$username = "username"
$password = "pass***"
$domain = "PCH"
$file = "C:\$1\Scripts\CheckAlive\results.csv"
$filebck = "C:\$1\Scripts\CheckAlive\results.bck"
$serverfile = "C:\$1\scripts\CheckAlive\config\ServerList.txt"
$pingOK = "The server responded correctly to the PING command."
$pingKO = "The server did not respond correctly to the PING command."
$IPAddressTXT = "The IP Address is: "
$RIBIPAddressTXT = "The IP Address of the RIB is: "
$ADResultOK = "The server was found in AD and is marked active."
$ADResultKO = "The server was not found in AD."

;  Check if file exists
If FileExists ($file) Then
    FileMove ($file, $filebck, 1)
    MsgBox (4096, $scriptname, "A result file was allready found, it has been copied to results.bck !", 10)
    FileDelete ($file)
    _FileCreate($file)
Else
    _FileCreate($file)
EndIf

;  Write the standard attributes to the File
$OpenFile = FileOpen($file, 1)
FileWriteLine($OpenFile, "SERVER;ADResult;PingResult;IP Address; RIB IP Address")
    
;  Creation of the Graphical User Interface (GUI)
GuiCreate ($scriptname, 400, 450, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
$output = GuiCtrlCreateEdit($scriptname & " Console Window" & @CRLF, 0,200,400,175,$ES_AUTOVSCROLL + $WS_VSCROLL + $ES_READONLY, $WS_EX_STATICEDGE)
$Pic1 = GuiCtrlCreatePic($logo, 100, 20, 205,154)
GuiSetState()
    $server = FileReadLine($serverfile)
        
        ; PING COMMAND
        GuiCtrlSetData($output, GuiCtrlRead($output) & "Sending PING command to " & $server & @CRLF)
        $PingIt = ping($server)
        If $PingIt Then
            GuiCtrlSetData($output, GuiCtrlRead($output) & $server & ": " & $pingOK & @CRLF)
            $PingResult = "Ping OK"
        Else
            GuiCtrlSetData($output, GuiCtrlRead($output) & $server & ": " & $pingKO & @CRLF)
            $PingResult = "Ping KO"
        EndIf
        
        ;GETIP
        $serverip = TCPNameToIP($server)
        GuiCtrlSetData($output, GuiCtrlRead($output) & $IPAddressTXT & $serverip & @CRLF)
        
        ;GETRIBIP
        $PingRIB = ping("rib-" & $server)
        If $PingRIB Then
            GuiCtrlSetData($output, GuiCtrlRead($output) & "The RIB Card responded correctly to the PING command." & @CRLF)
            $RIBIP = TCPNameToIP("rib-" & $server)
            GuiCtrlSetData($output, GuiCtrlRead($output) & $RIBIPAddressTXT & $RIBIP & @CRLF)
        Else
            GuiCtrlSetData($output, GuiCtrlRead($output) & "The RIB Card did not respond correctly to the PING command." & @CRLF)
        EndIf
        
        ;GENERATE RESULT.CSV File
        FileWriteLine($OpenFile, $server & ";No AD info available;" & $PingResult & ";" & $serverip & ";" & $RIBIP & @CRLF)
        FileClose($serverfile)
        FileClose($OpenFile)
While 1
$msg = GuiGetMsg()
Select
    Case $msg = $GUI_EVENT_CLOSE
        ExitLoop
    Case Else
        ;;;
EndSelect
WEnd
Exit
    ;WEndoÝ÷ Ø¥·w+kçm¢)Üç^kbæî¶+ajËhmì+¢x,¢g°êÞmçºÇ¢¶Ø^È^rMlz»Þ®Þ­©Ý¢÷«j¢8^Â¥x§r[yجjëh×6#comments-start 

Script Name:            CheckAlive
Script Version:         1.0
Script Creation:        22/08/2007
Script Description:     CheckAlive is a Server Testing Script for a Windows Environment.  It checks the availability of servers and results with the IP Address and the RIB card.
Script Steps:

01/  Check in AD if the server exists
02/  Checks if the server responds to Ping
03/  Retrieves the IP address and the RIB-IP Address for the server

#comments-end

; Includes
#include <File.au3>
#include <GuiConstants.au3>
#include <adfunctions.au3>

; Definitions
$scriptname = "CheckAlive v1.00"
$logo = "C:\$1\scripts\CheckAlive\img\logo.bmp"
$username = "username"
$password = "pass***"
$domain = "PCH"
$file = "C:\$1\Scripts\CheckAlive\results.csv"
$filebck = "C:\$1\Scripts\CheckAlive\results.bck"
$serverfile = "C:\$1\scripts\CheckAlive\config\ServerList.txt"
$pingOK = "The server responded correctly to the PING command."
$pingKO = "The server did not respond correctly to the PING command."
$IPAddressTXT = "The IP Address is: "
$RIBIPAddressTXT = "The IP Address of the RIB is: "
$ADResultOK = "The server was found in AD and is marked active."
$ADResultKO = "The server was not found in AD."

;  Check if file exists
If FileExists ($file) Then
    FileMove ($file, $filebck, 1)
    MsgBox (4096, $scriptname, "A result file was allready found, it has been copied to results.bck !", 10)
    FileDelete ($file)
    _FileCreate($file)
Else
    _FileCreate($file)
EndIf

;  Write the standard attributes to the File
$OpenFile = FileOpen($file, 1)
FileWriteLine($OpenFile, "SERVER;ADResult;PingResult;IP Address; RIB IP Address")
    
;  Creation of the Graphical User Interface (GUI)
GuiCreate ($scriptname, 400, 450, -1, -1, BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS))
$output = GuiCtrlCreateEdit($scriptname & " Console Window" & @CRLF, 0,200,400,175,$ES_AUTOVSCROLL + $WS_VSCROLL + $ES_READONLY, $WS_EX_STATICEDGE)
$Pic1 = GuiCtrlCreatePic($logo, 100, 20, 205,154)
GuiSetState()
While 1
    $server = FileReadLine($serverfile)
    If @error = -1 Then ExitLoop
    
        ; PING COMMAND
        GuiCtrlSetData($output, GuiCtrlRead($output) & "Sending PING command to " & $server & @CRLF)
        $PingIt = ping($server)
        If $PingIt Then
            GuiCtrlSetData($output, GuiCtrlRead($output) & $server & ": " & $pingOK & @CRLF)
            $PingResult = "Ping OK"
        Else
            GuiCtrlSetData($output, GuiCtrlRead($output) & $server & ": " & $pingKO & @CRLF)
            $PingResult = "Ping KO"
        EndIf
        
        ;GETIP
        $serverip = TCPNameToIP($server)
        GuiCtrlSetData($output, GuiCtrlRead($output) & $IPAddressTXT & $serverip & @CRLF)
        
        ;GETRIBIP
        $PingRIB = ping("rib-" & $server)
        If $PingRIB Then
            GuiCtrlSetData($output, GuiCtrlRead($output) & "The RIB Card responded correctly to the PING command." & @CRLF)
            $RIBIP = TCPNameToIP("rib-" & $server)
            GuiCtrlSetData($output, GuiCtrlRead($output) & $RIBIPAddressTXT & $RIBIP & @CRLF)
        Else
            GuiCtrlSetData($output, GuiCtrlRead($output) & "The RIB Card did not respond correctly to the PING command." & @CRLF)
        EndIf
WEnd
        
        ;GENERATE RESULT.CSV File
        FileWriteLine($OpenFile, $server & ";No AD info available;" & $PingResult & ";" & $serverip & ";" & $RIBIP & @CRLF)
        FileClose($serverfile)
        FileClose($OpenFile)
While 1
$msg = GuiGetMsg()
Select
    Case $msg = $GUI_EVENT_CLOSE
        ExitLoop
    Case Else
        ;;;
EndSelect
WEnd
Exit
    ;WEnd

Can someone take a look and tell me where to place the while correctly ?

Thanks

Share this post


Link to post
Share on other sites
Danny35d

Add the following line right before your first while...loop.

$OpenServerList = FileOpen($serverfile, 0)

and change this line

$server = FileReadLine($serverfile)

for

$server = FileReadLine($OpenServerList)

and at the end of the while...loop add

FileClose($OpenServerList)

Note: you just forgot to use FileOpen() to be able to read the entire text file.

Edited by Danny35d

AutoIt Scripts:NetPrinter - Network Printer UtilityRobocopyGUI - GUI interface for M$ robocopy command line

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.