Tuesday, February 20, 2007

LAN Scan with batch scripting

 @ECHO OFF
REM ===TEST PING=========
@ECHO ================================================ >>Net-Service-Query-Report.txt
@ECHO NETWORK SERVICE SCAN REPORT >>Net-Service-Query-Report.txt
(DATE /T && TIME /T) >>Net-Service-Query-Report.txt
@ECHO ================================================ >>Net-Service-Query-Report.txt

FOR /F %%Z IN (PEERS.TXT) DO (
(PING -n 1 %%Z|FIND /C "Received = 1") >PING.STAT
FOR /F %%P IN (PING.STAT) DO (
IF %%P EQU 1 (
ECHO %%Z >> PING.UP
) ELSE ( ECHO %%Z >> PING.DOWN )
)
DEL PING.STAT
)

FOR /F %%A IN (PING.UP) DO (
REM 2ND FOR LOOP START
FOR /F %%B IN (SERVICES.TXT) DO (
SC \\%%A QUERY %%B >SERVICES.TMP0
TYPE SERVICES.TMP0|FIND /C "FAILED 1060:" >SERVICES.TMP1
TYPE SERVICES.TMP0|FIND /C "FAILED 1722:" >SERVICES.TMP2
TYPE SERVICES.TMP0|FIND /C "FAILED 5:" >SERVICES.TMP3

TYPE SERVICES.TMP0|FIND "STATE" >SERVICES.TMP

FOR /F %%S IN (SERVICES.TMP1) DO (
IF %%S EQU 1 (
@ECHO X X X NOT INSTALLED >SERVICES.TMP
)
)

FOR /F %%U IN (SERVICES.TMP2) DO (
IF %%U EQU 1 (
@ECHO X X X NO RPC AVAILIABLE >SERVICES.TMP
) )

FOR /F %%W IN (SERVICES.TMP3) DO (
IF %%W EQU 1 (
@ECHO X X X AUTHENTICATION FAILURE >SERVICES.TMP
) )

REM 3RD FOR LOOP START
FOR /F "TOKENS=4*" %%C IN (SERVICES.TMP) DO (
(@ECHO %%B - %%C %%D) >> SERVICES.STATE )
REM 3RD FOR LOOP END

)
REM 2ND FOR LOOP END

DEL /F /Q SERVICES.TMP*

@ECHO. >>Net-Service-Query-Report.txt
@ECHO ------------------------------------------------ >>Net-Service-Query-Report.txt
@ECHO IP::::%%A >>Net-Service-Query-Report.txt
@ECHO ------------------------------------------------ >>Net-Service-Query-Report.txt

TYPE SERVICES.STATE >>Net-Service-Query-Report.txt

(@ECHO RUNNING SERVICES : && TYPE SERVICES.STATE|FIND /C "RUNNING") >SERVICES.RUNCOUNT
(@ECHO STOPPED SERVICES : && TYPE SERVICES.STATE|FIND /C "STOPPED") >SERVICES.STOPCOUNT
(@ECHO TOTAL SERVICES : && TYPE SERVICES.STATE|FIND /C " ") >SERVICES.COUNT
(@ECHO NOT INSTALLED SERVICES : && TYPE SERVICES.STATE|FIND /C "NOT INSTALLED") >SERVICES.NOTINSTALLEDCOUNT
(@ECHO NO RPC - FIREWALL : && TYPE SERVICES.STATE|FIND /C "NO RPC") >SERVICES.NORPCCOUNT
(@ECHO AUTHENTICATION FAILURE/NON-WINDOWS OS : && TYPE SERVICES.STATE|FIND /C "AUTHENTICATION FAILURE") >SERVICES.AUTHFAILCOUNT

@ECHO ******************* SYTEM SUMMARY ********************* >>Net-Service-Query-Report.txt
TYPE SERVICES.COUNT >>Net-Service-Query-Report.txt
TYPE SERVICES.RUNCOUNT >>Net-Service-Query-Report.txt
TYPE SERVICES.STOPCOUNT >>Net-Service-Query-Report.txt
TYPE SERVICES.NOTINSTALLEDCOUNT >>Net-Service-Query-Report.txt
TYPE SERVICES.NORPCCOUNT >>Net-Service-Query-Report.txt
TYPE SERVICES.AUTHFAILCOUNT >>Net-Service-Query-Report.txt

DEL /F /Q SERVICES.*COUNT SERVICES.STATE

)

@ECHO. >>Net-Service-Query-Report.txt
ECHO ################### SCAN SUMMARY ################# >>Net-Service-Query-Report.txt
@ECHO TOTAL MACHINES SCANNED : >>Net-Service-Query-Report.txt
TYPE PEERS.TXT|FIND /C "." >>Net-Service-Query-Report.txt
@ECHO TOTAL MACHINES UP : >>Net-Service-Query-Report.txt
TYPE PING.UP|FIND /C "." >>Net-Service-Query-Report.txt
@ECHO TOTAL MACHINES DOWN : >>Net-Service-Query-Report.txt
TYPE PING.DOWN|FIND /C "." >>Net-Service-Query-Report.txt
@ECHO MACHINES DOWN : >>Net-Service-Query-Report.txt
TYPE PING.DOWN >>Net-Service-Query-Report.txt

DEL /F /Q PING.*

No comments:

Post a Comment