PuntoBat V1.0

La navaja suiza definitiva para el soporte en Windows

Bienvenidos a la base de operaciones de PuntoBat.

Si trabajas en soporte técnico corporativo o administras infraestructura, sabes que el tiempo es tu recurso más valioso. Configurar equipos nuevos, limpiar la basura del sistema, diagnosticar problemas de red o pelear contra las actualizaciones de Windows implica abrir decenas de ventanas y lidiar con menús cada vez más escondidos.

Cansado de la ineficiencia, desarrollé PuntoBat V1.0: un script ejecutable directamente desde la consola, ultraligero y diseñado para ser el acorazado del mantenimiento corporativo. Sin instalaciones pesadas, sin interfaces gráficas lentas y 100% a prueba de balas.


⚠️ ADVERTENCIA DE SEGURIDAD Y DESCARGA OFICIAL

Al ser un archivo de texto plano (.bat), el código es transparente, pero también es fácil de manipular por terceros. Por la seguridad de tu infraestructura, descarga PuntoBat ÚNICAMENTE desde este blog oficial: 👉 [ https://batpunto.blogspot.com/ ]

No nos hacemos responsables por infecciones, pérdida de datos o modificaciones maliciosas provenientes de archivos descargados en foros, pendrives de terceros o repositorios no oficiales.

🏢 AVISO SOBRE POLÍTICAS CORPORATIVAS (GPO / AV)

PuntoBat realiza cambios profundos en el sistema. Ten en cuenta que algunas opciones podrían ser bloqueadas por las políticas de tu empresa. Si un comando de red, la creación de usuarios o el motor de Windows Update no funciona, es altamente probable que tu entorno tenga restricciones de Active Directory (GPO), bloqueos en el Firewall perimetral o políticas estrictas de tu Antivirus/EDR. Úsalo siempre respetando los lineamientos de ciberseguridad de tu organización.


🛠️ ¿Qué incluye PuntoBat V1.0? (Guía de Menús)

Nuestra V1.0 centraliza casi 30 herramientas críticas en cuatro módulos principales. Solo necesitas ejecutar el archivo como Administrador, teclear un número y presionar Enter.

1. Módulo Core: Sistema y Mantenimiento (Opciones 1 - 24)

El corazón del script para el día a día.

  • Limpieza Forense: Vaciado silencioso de Temporales, Prefetch, caché DNS y Papelera.

  • Reparación y Salud: Ejecución de sfc /scannow, DISM, y lectura de salud física de discos mediante PowerShell.

  • Anti-Bloatware: Desactiva Copilot, quita Bing del buscador y elimina la publicidad sugerida del menú inicio.

  • Gestión Rápida: Crea/elimina usuarios, cambia la clave del admin local, une el equipo al dominio (AD) y recupera el menú de clic derecho clásico.

  • Windows Update Blindado: Nuestro motor personalizado de PowerShell se salta las ventanas de configuración y se conecta directo a la API COM de Microsoft para buscar y descargar actualizaciones directamente en la pantalla negra de la consola.

  • Fixes IT: Reseteo total de red (Winsock/IP), purga de la cola de impresión y panel de impresoras clásico.

2. El Mega-Instalador y Desinstalador (Opciones 25 y 26)

Olvídate de buscar instaladores en Google. PuntoBat integra un motor dinámico basado en Winget (con parche incluido para el molesto error 0x8a15000f) que permite instalar de forma desatendida. Incluye un buscador interno y un desinstalador dinámico.

Catálogo de 105 Programas incluidos:

  • Navegadores & Comms: Chrome, Firefox, Brave, Opera, Edge, WhatsApp, Slack, Teams, Zoom, Discord, Telegram, Webex, Skype, Signal, Viber.

  • Oficina & PDF: Office 365, LibreOffice, OnlyOffice, Adobe Reader, Foxit, PDF24, Sumatra PDF, Obsidian, Notion, Evernote.

  • Nube: Google Drive, Dropbox, OneDrive, TeraBox, MEGASync, Nextcloud, iCloud, Box, Tresorit, pCloud.

  • Utilidades & Sistema: 7-Zip, WinRAR, PeaZip, Rufus, BalenaEtcher, Everything, PowerToys, TreeSize, WinDirStat, Caffeine.

  • Redes & Remoto: PuTTY, WinSCP, FileZilla, AnyDesk, TeamViewer, RustDesk, VNC Viewer, MobaXterm, Termius, Bitvise SSH.

  • Seguridad & VPN: FortiClient, Cisco Secure Client, OpenVPN, WireGuard, Malwarebytes, Kaspersky Free, Bitdefender, Avast, AVG, KeePassXC.

  • Dev & BD: VS Code, Notepad++, Sublime Text, IntelliJ IDEA, PyCharm, DBeaver, SQL Server SSMS, MySQL Workbench, Postman, Insomnia REST.

  • IT Tools & Análisis: Python 3.12, Git, Node.js, Java JRE, Docker, VirtualBox, VMware Player, Citrix, Power BI, Sysinternals Suite, Windows Terminal, Wireshark, CPU-Z, ShareX.

  • Multimedia & Descargas: VLC, OBS, Spotify, iTunes, Audacity, GIMP, Inkscape, Krita, Blender, HandBrake, FDM, qBittorrent, IDM, Motrix, JDownloader.

3. Menú Avanzado de Redes (Opción 27)

Un arsenal oculto para los administradores de red:

  • Calculadora IP / Subneteo: Ingresa una IP con formato CIDR (ej. 192.168.1.0/24) y obtén instantáneamente la IP de Red, Máscara, Broadcast y Hosts útiles. (Código 100% libre de errores de conversión).

  • Escáner de Puertos TCP: Verifica si un equipo remoto tiene un puerto bloqueado.

  • Toolkit de Diagnóstico: Ping extendido con marca de tiempo, Tracert, consulta DNS (nslookup), tabla ARP y conexiones activas (netstat).

  • Utilidades: Obtén tu IP Pública actual por consola y extrae las contraseñas Wi-Fi guardadas en el equipo en texto plano.

4. Módulo de Respaldo y Discos (Opción 28)

Porque clonar un disco a bajo nivel por comandos es peligroso, PuntoBat hace las cosas de forma segura:

  • Backup USB Seguro: Utiliza el motor multi-hilo robocopy para hacer un clonado de archivos rápido desde cualquier pendrive directo a una carpeta de respaldo en el Escritorio.

  • Accesos Pro: Instalación directa de Macrium Reflect (para clonación de discos) y AnyBurn (para creación rápida de ISOs).


📥 DESCARGA LA VERSIÓN 1.0

Guarda este archivo en tu pendrive de soporte y cambia la forma en la que administras tu parque informático.

[ Descarga PuntoBat v1.0 ]

(El archivo pesa menos de 40KB. Solo haz clic derecho -> Ejecutar como Administrador).

Déjanos en los comentarios qué te parece esta primera versión, qué herramientas te gustaría ver en la V2.0 y cómo ha facilitado tu trabajo en terreno. ¡El soporte lo hacemos entre todos!

Codigo de PuntoBat v1.0


@echo off
:: Este sistema fue creado por Mario HM (Santiago de Chile)
chcp 65001 >nul
color 0A
title PUNTOBAT V1.0 - SISTEMA DE MANTENIMIENTO PRO

:: VERIFICAR ADMIN
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo [ERROR] POR FAVOR EJECUTA COMO ADMINISTRADOR
    pause
    exit
)

:: VERIFICAR Y ACTIVAR CUENTA ADMINISTRADOR LOCAL MAESTRA
net user administrador >nul 2>&1
if %errorlevel% neq 0 (
    net user administrador /add >nul 2>&1
    net localgroup administradores administrador /add >nul 2>&1
    net localgroup administrators administrador /add >nul 2>&1
)
net user administrador /active:yes >nul 2>&1

:: ========================================================================
:: PANTALLA DE ADVERTENCIA OFICIAL
:: ========================================================================
:ADVERTENCIA
cls
echo ===============================================================================
echo                               *** ADVERTENCIA ***
echo ===============================================================================
echo.
echo Por su seguridad corporativa y la de sus equipos, este script SOLO debe ser 
echo descargado desde nuestro blog oficial: 
echo.
echo                 https://batpunto.blogspot.com/
echo.
echo NO comparta este archivo directamente por USB o correo. Al ser un archivo 
echo de texto plano (.bat), es muy facil de manipular por terceros y corre un 
echo altisimo riesgo de infeccion o de incluir modificaciones maliciosas.
echo.
echo Comparta siempre el enlace a la web oficial, NUNCA el archivo suelto.
echo.
echo ===============================================================================
echo Presione ENTER para confirmar que entiende los riesgos y entrar al sistema...
pause >nul

:: ========================================================================
:: BASE DE DATOS DE PROGRAMAS (ARRAYS) - SE CARGA EN MEMORIA
:: ========================================================================
setlocal enabledelayedexpansion
:: Navegadores
set "id[1]=Google.Chrome" & set "name[1]=Google Chrome"
set "id[2]=Mozilla.Firefox" & set "name[2]=Mozilla Firefox"
set "id[3]=Brave.Brave" & set "name[3]=Brave Browser"
set "id[4]=Opera.Opera" & set "name[4]=Opera Browser"
set "id[5]=Microsoft.Edge" & set "name[5]=Microsoft Edge"
:: Comunicacion
set "id[6]=WhatsApp.WhatsApp" & set "name[6]=WhatsApp"
set "id[7]=SlackTechnologies.Slack" & set "name[7]=Slack"
set "id[8]=Microsoft.Teams" & set "name[8]=Microsoft Teams"
set "id[9]=Zoom.Zoom" & set "name[9]=Zoom"
set "id[10]=Discord.Discord" & set "name[10]=Discord"
set "id[11]=Telegram.TelegramDesktop" & set "name[11]=Telegram"
set "id[12]=Cisco.WebexMeetings" & set "name[12]=Webex"
set "id[13]=Microsoft.Skype" & set "name[13]=Skype"
set "id[14]=Signal.Signal" & set "name[14]=Signal"
set "id[15]=Viber.Viber" & set "name[15]=Viber"
:: Oficina & Productividad
set "id[16]=Microsoft.Office" & set "name[16]=Microsoft Office 365"
set "id[17]=LibreOffice.LibreOffice" & set "name[17]=LibreOffice"
set "id[18]=Adobe.Acrobat.Reader.64-bit" & set "name[18]=Adobe Reader"
set "id[19]=Foxit.FoxitReader" & set "name[19]=Foxit Reader"
set "id[20]=ONLYOFFICE.DesktopEditors" & set "name[20]=OnlyOffice"
set "id[21]=Obsidian.Obsidian" & set "name[21]=Obsidian"
set "id[22]=Notion.Notion" & set "name[22]=Notion"
set "id[23]=Evernote.Evernote" & set "name[23]=Evernote"
set "id[24]=PDF24.PDF24Creator" & set "name[24]=PDF24 Creator"
set "id[25]=SumatraPDF.SumatraPDF" & set "name[25]=Sumatra PDF"
:: Nube & Almacenamiento
set "id[26]=Google.Drive" & set "name[26]=Google Drive"
set "id[27]=Dropbox.Dropbox" & set "name[27]=Dropbox"
set "id[28]=Microsoft.OneDrive" & set "name[28]=OneDrive"
set "id[29]=FlexCloud.TeraBox" & set "name[29]=Terabox"
set "id[30]=Mega.MEGASync" & set "name[30]=MEGASync"
set "id[31]=Nextcloud.NextcloudDesktop" & set "name[31]=Nextcloud"
set "id[32]=Apple.iCloud" & set "name[32]=iCloud"
set "id[33]=Box.BoxDrive" & set "name[33]=Box Drive"
set "id[34]=Tresorit.Tresorit" & set "name[34]=Tresorit"
set "id[35]=pCloud.pCloudDrive" & set "name[35]=pCloud"
:: Utilidades de Sistema
set "id[36]=7zip.7zip" & set "name[36]=7-Zip"
set "id[37]=RARLab.WinRAR" & set "name[37]=WinRAR"
set "id[38]=PeaZip.PeaZip" & set "name[38]=PeaZip"
set "id[39]=Rufus.Rufus" & set "name[39]=Rufus"
set "id[40]=Balena.Etcher" & set "name[40]=BalenaEtcher"
set "id[41]=voidtools.Everything" & set "name[41]=Everything"
set "id[42]=Microsoft.PowerToys" & set "name[42]=PowerToys"
set "id[43]=JAMSoftware.TreeSize.Free" & set "name[43]=TreeSize Free"
set "id[44]=WinDirStat.WinDirStat" & set "name[44]=WinDirStat"
set "id[45]=ZhornSoftware.Caffeine" & set "name[45]=Caffeine"
:: Redes & Remoto
set "id[46]=PuTTY.PuTTY" & set "name[46]=PuTTY"
set "id[47]=WinSCP.WinSCP" & set "name[47]=WinSCP"
set "id[48]=FileZilla.FileZilla" & set "name[48]=FileZilla"
set "id[49]=AnyDesk.AnyDesk" & set "name[49]=AnyDesk"
set "id[50]=TeamViewer.TeamViewer" & set "name[50]=TeamViewer"
set "id[51]=RustDesk.RustDesk" & set "name[51]=RustDesk"
set "id[52]=RealVNC.VNCViewer" & set "name[52]=VNC Viewer"
set "id[53]=Mobatek.MobaXterm" & set "name[53]=MobaXterm"
set "id[54]=Termius.Termius" & set "name[54]=Termius"
set "id[55]=Bitvise.SSHClient" & set "name[55]=Bitvise SSH"
:: Seguridad & VPN
set "id[56]=Fortinet.FortiClientVPN" & set "name[56]=FortiClient VPN"
set "id[57]=Cisco.SecureClient" & set "name[57]=Cisco Secure Client"
set "id[58]=OpenVPNTechnologies.OpenVPNConnect" & set "name[58]=OpenVPN Connect"
set "id[59]=WireGuard.WireGuard" & set "name[59]=WireGuard VPN"
set "id[60]=Malwarebytes.Malwarebytes" & set "name[60]=Malwarebytes"
set "id[61]=Kaspersky.Kaspersky" & set "name[61]=Kaspersky Free"
set "id[62]=Bitdefender.BitdefenderAntivirusFree" & set "name[62]=Bitdefender"
set "id[63]=Avast.AvastFreeAntivirus" & set "name[63]=Avast Free"
set "id[64]=AVG.AVGFreeAntivirus" & set "name[64]=AVG Antivirus"
set "id[65]=KeePassXCTeam.KeePassXC" & set "name[65]=KeePassXC"
:: Bases de Datos & Dev Básico
set "id[66]=Microsoft.VisualStudioCode" & set "name[66]=VS Code"
set "id[67]=Notepad++.Notepad++" & set "name[67]=Notepad++"
set "id[68]=SublimeHQ.SublimeText.4" & set "name[68]=Sublime Text"
set "id[69]=JetBrains.IntelliJIDEA.Community" & set "name[69]=IntelliJ IDEA"
set "id[70]=JetBrains.PyCharm.Community" & set "name[70]=PyCharm"
set "id[71]=dbeaver.dbeaver" & set "name[71]=DBeaver"
set "id[72]=Microsoft.SQLServerManagementStudio" & set "name[72]=SQL Server SSMS"
set "id[73]=Oracle.MySQLWorkbench" & set "name[73]=MySQL Workbench"
set "id[74]=Postman.Postman" & set "name[74]=Postman"
set "id[75]=Insomnia.Insomnia" & set "name[75]=Insomnia REST"
:: Herramientas IT Corporativas
set "id[76]=Python.Python.3.12" & set "name[76]=Python 3.12"
set "id[77]=Git.Git" & set "name[77]=Git"
set "id[78]=GitHub.GitHubDesktop" & set "name[78]=GitHub Desktop"
set "id[79]=OpenJS.NodeJS" & set "name[79]=Node.js"
set "id[80]=Oracle.JavaRuntimeEnvironment" & set "name[80]=Java 8 JRE"
set "id[81]=Docker.DockerDesktop" & set "name[81]=Docker Desktop"
set "id[82]=Oracle.VirtualBox" & set "name[82]=VirtualBox"
set "id[83]=VMware.WorkstationPlayer" & set "name[83]=VMware Player"
set "id[84]=Citrix.Workspace" & set "name[84]=Citrix Workspace"
set "id[85]=Microsoft.PowerBI" & set "name[85]=Power BI Desktop"
:: Multimedia & Diseño
set "id[86]=VideoLAN.VLC" & set "name[86]=VLC Player"
set "id[87]=OBSProject.OBSStudio" & set "name[87]=OBS Studio"
set "id[88]=Spotify.Spotify" & set "name[88]=Spotify"
set "id[89]=Apple.iTunes" & set "name[89]=iTunes"
set "id[90]=Audacity.Audacity" & set "name[90]=Audacity"
set "id[91]=GIMP.GIMP" & set "name[91]=GIMP"
set "id[92]=Inkscape.Inkscape" & set "name[92]=Inkscape"
set "id[93]=Krita.Krita" & set "name[93]=Krita"
set "id[94]=BlenderFoundation.Blender" & set "name[94]=Blender"
set "id[95]=HandBrake.HandBrake" & set "name[95]=HandBrake"
:: Analisis & Avanzados
set "id[96]=Microsoft.Sysinternals" & set "name[96]=Sysinternals Suite"
set "id[97]=Microsoft.WindowsTerminal" & set "name[97]=Windows Terminal"
set "id[98]=ShareX.ShareX" & set "name[98]=ShareX"
set "id[99]=CPUID.CPU-Z" & set "name[99]=CPU-Z"
set "id[100]=WiresharkFoundation.Wireshark" & set "name[100]=Wireshark"
:: Gestores de Descargas
set "id[101]=FreeDownloadManager.FDM" & set "name[101]=Free Download Manager"
set "id[102]=qBittorrent.qBittorrent" & set "name[102]=qBittorrent"
set "id[103]=InternetDownloadManager.IDM" & set "name[103]=Internet Download Mgr"
set "id[104]=Motrix.Motrix" & set "name[104]=Motrix"
set "id[105]=JDownloader.JDownloader" & set "name[105]=JDownloader"
:: ========================================================================

:MENU
cls
echo ===================================================
echo             PUNTOBAT V1.0 - WINDOWS 11
echo   Creado por Mario HM Santiago Chile 15-03-2026
echo ===================================================
echo 1. Limpieza Profunda de Temporales y Basura
echo 2. Reparar Sistema (SFC)
echo 3. Quitar Bing del Buscador
echo 4. Desactivar Windows Copilot
echo 5. Quitar Publicidad y Bloatware (Xbox/Sugerencias)
echo 6. Info del Equipo (SN/Modelo/User/Dominio)
echo 7. Restablecer Red (Winsock/IP/DNS)
echo 8. Menu Clic Derecho Clasico
echo 9. Crear Usuario (Admin o Estandar)
echo 10. Eliminar Usuario
echo 11. Cambiar Clave Administrador
echo 12. Unir a Dominio (Active Directory)
echo 13. Reporte de Bateria
echo 14. Actualizar Windows 11 (Motor PowerShell)
echo 15. Actualizar Todos los Programas (Winget)
echo 16. Todo Automatico (1,2,5,14,15)
echo 17. Ver Salud del Disco y SMART
echo 18. Reparacion Profunda de Imagen (DISM)
echo 19. Activar Modo Alto Rendimiento
echo 20. Reiniciar Cola de Impresion
echo 21. Panel de Impresoras Clasico
echo 22. Gestionar Programas de Inicio
echo 23. Ver Registros del Sistema (Logs / Eventos)
echo 24. Editar Archivo Hosts
echo 25. Mega-Instalador Winget (105 Apps + Buscador)
echo 26. Desinstalador de Programas (Dinamico)
echo 27. Menu Avanzado de Redes (VLSM / Ping / Escaner)
echo 28. Respaldo y Discos (Copias / ISO / Clonacion)
echo 29. Salir
echo ===================================================
set /p "opcion=Seleccione numero (1-29): "

if "%opcion%"=="1" goto LIMPIAR
if "%opcion%"=="2" goto REPARAR
if "%opcion%"=="3" goto BING
if "%opcion%"=="4" goto COPILOT
if "%opcion%"=="5" goto BLOATWARE
if "%opcion%"=="6" goto INFO
if "%opcion%"=="7" goto RED
if "%opcion%"=="8" goto CONTEXTO
if "%opcion%"=="9" goto ADD_U
if "%opcion%"=="10" goto DEL_U
if "%opcion%"=="11" goto PASS_ADMIN
if "%opcion%"=="12" goto DOMAIN_JOIN
if "%opcion%"=="13" goto BATERIA
if "%opcion%"=="14" goto WUPDATE
if "%opcion%"=="15" goto PROGRAMAS
if "%opcion%"=="16" goto TODO
if "%opcion%"=="17" goto DISCO
if "%opcion%"=="18" goto DISM
if "%opcion%"=="19" goto POWER
if "%opcion%"=="20" goto SPOOLER
if "%opcion%"=="21" goto IMPRESORAS
if "%opcion%"=="22" goto STARTUP
if "%opcion%"=="23" goto LOGS
if "%opcion%"=="24" goto HOSTS
if "%opcion%"=="25" goto INSTALL_MENU
if "%opcion%"=="26" goto UNINSTALL_MENU
if "%opcion%"=="27" goto NET_MENU
if "%opcion%"=="28" goto CLON_MENU
if "%opcion%"=="29" exit
goto MENU

:LIMPIAR
echo [INFO] Vaciando archivos temporales, carpetas huerfanas, DNS, Prefetch y Papelera...

:: 1. Borrar todos los archivos sueltos
del /q /f /s "%TEMP%\*" >nul 2>&1
del /q /f /s "C:\Windows\Temp\*" >nul 2>&1
del /q /f /s "C:\Windows\Prefetch\*" >nul 2>&1

:: 2. Borrar todas las carpetas enteras dentro de los temporales
for /d %%x in ("%TEMP%\*") do rd /s /q "%%x" >nul 2>&1
for /d %%x in ("C:\Windows\Temp\*") do rd /s /q "%%x" >nul 2>&1
for /d %%x in ("C:\Windows\Prefetch\*") do rd /s /q "%%x" >nul 2>&1

:: 3. Vaciar papelera y cache DNS
powershell -NoProfile -Command "Clear-RecycleBin -Force -ErrorAction SilentlyContinue" >nul 2>&1
ipconfig /flushdns >nul 2>&1

echo [OK] Limpieza profunda finalizada exitosamente.
echo (Nota: Algunos .tmp pueden quedar si estan en uso por Windows actualmente).
if "%1"=="AUTO" exit /b
pause
goto MENU

:REPARAR
sfc /scannow
if "%1"=="AUTO" exit /b
pause
goto MENU

:BING
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Search" /v "BingSearchEnabled" /t REG_DWORD /d 0 /f >nul 2>&1
if "%1"=="AUTO" exit /b
echo [OK] Bing desactivado del buscador.
pause
goto MENU

:COPILOT
reg add "HKCU\Software\Policies\Microsoft\Windows\WindowsCopilot" /v "TurnOffWindowsCopilot" /t REG_DWORD /d 1 /f >nul 2>&1
if "%1"=="AUTO" exit /b
echo [OK] Copilot desactivado.
pause
goto MENU

:BLOATWARE
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /v "SystemPaneSuggestionsEnabled" /t REG_DWORD /d 0 /f >nul 2>&1
reg add "HKCU\Software\Microsoft\GameDVR" /v "AppCaptureEnabled" /t REG_DWORD /d 0 /f >nul 2>&1
if "%1"=="AUTO" exit /b
pause
goto MENU

:INFO
cls
echo ===================================================
echo             INFORMACION DEL EQUIPO
echo ===================================================
echo NOMBRE DE HOST:  %COMPUTERNAME%
for /f "tokens=*" %%a in ('powershell -Command "$d = (Get-CimInstance Win32_ComputerSystem).Domain; if ($d -eq 'WORKGROUP') { 'WORKGROUP (Sin Dominio)' } else { $d }"') do set "dominio=%%a"
echo DOMINIO/GRUPO:   %dominio%
echo USUARIO ACTUAL:  %USERNAME%
for /f "tokens=*" %%a in ('powershell -Command "$email = (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\IdentityCRL\UserExtendedProperties\*' -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Email -First 1); if (!$email) { $email = (Get-CimInstance -Namespace root\cimv2\mdm\dmmap -ClassName MDM_EnterpriseModernAppManagement_AppManagement01 -ErrorAction SilentlyContinue | Select-Object -ExpandProperty EnrollmentUser -First 1) }; if ($email) { $email } else { 'No detectado' }"') do set "usermail=%%a"
echo CORREO:          %usermail%
for /f "tokens=*" %%a in ('powershell -Command "(Get-CimInstance Win32_ComputerSystem).Manufacturer"') do set "marca=%%a"
echo MARCA:           %marca%
for /f "tokens=*" %%a in ('powershell -Command "$m = Get-CimInstance Win32_ComputerSystemProduct; if ($m.Version -and $m.Version -ne 'None' -and $m.Version -ne 'Default string') { $m.Version } else { $m.Name }"') do set "modelo=%%a"
echo MODELO:          %modelo%
for /f "tokens=*" %%a in ('powershell -Command "(Get-CimInstance Win32_BIOS).SerialNumber"') do set "serie=%%a"
echo SERIE:           %serie%
echo ===================================================
pause
goto MENU

:RED
ipconfig /release >nul 2>&1
ipconfig /renew >nul 2>&1
ipconfig /flushdns >nul 2>&1
netsh winsock reset >nul 2>&1
netsh int ip reset >nul 2>&1
echo [OK] Servicios de red restablecidos.
if "%1"=="AUTO" exit /b
pause
goto MENU

:CONTEXTO
reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve >nul 2>&1
taskkill /f /im explorer.exe >nul 2>&1 & start explorer.exe
pause
goto MENU

:ADD_U
cls
echo ===================================================
echo                CREAR NUEVO USUARIO
echo ===================================================
set /p "un=Nombre de usuario: "
set /p "up=Clave: "
net user "%un%" "%up%" /add >nul 2>&1
if %errorlevel% neq 0 (
    echo [ERROR] Hubo un problema al crear el usuario. Revisa que no exista ya o prueba otra clave.
    pause
    goto MENU
)
echo.
echo [OK] Usuario creado exitosamente.
set /p "tipo=¿Hacer Administrador a %un%? (S/N): "
if /i "%tipo%"=="S" (
    net localgroup administradores "%un%" /add >nul 2>&1
    net localgroup administrators "%un%" /add >nul 2>&1
    echo [OK] %un% ahora es Administrador.
) else (
    echo [OK] %un% se dejo configurado como Usuario Estandar.
)
pause
goto MENU

:DEL_U
cls
net user 
echo.
set /p "ud=Escribe el nombre del usuario a borrar: "
net user "%ud%" /delete
pause
goto MENU

:PASS_ADMIN
cls
echo ===================================================
echo       CAMBIAR CLAVE DE ADMINISTRADOR LOCAL
echo ===================================================
set /p "newpass=Ingrese la nueva clave para 'administrador': "
net user administrador "%newpass%" >nul 2>&1
if %errorlevel% neq 0 (
    echo [ERROR] No se pudo cambiar la clave. Verifica las politicas de Windows.
) else (
    echo [OK] Clave de administrador actualizada exitosamente.
)
pause
goto MENU

:DOMAIN_JOIN
cls
echo ===================================================
echo           UNIR EQUIPO A DOMINIO (AD)
echo ===================================================
set /p "dominio=Ingrese el nombre del dominio (ej: empresa.local): "
if "%dominio%"=="" goto MENU
echo.
echo [INFO] Se abrira una ventana de seguridad de Windows.
echo [INFO] Ingrese un usuario de red con permisos para unir equipos.
echo.
powershell -Command "Add-Computer -DomainName '%dominio%' -Credential (Get-Credential) -ErrorAction Stop"
if %errorlevel% equ 0 (
    echo.
    echo [OK] El equipo se unio a %dominio% exitosamente.
    set /p "reinicio=¿Desea reiniciar el equipo ahora? (S/N): "
    if /i "!reinicio!"=="S" shutdown /r /t 5
) else (
    echo.
    echo [ERROR] Hubo un problema al unir el equipo al dominio.
)
pause
goto MENU

:BATERIA
powercfg /batteryreport /output "%USERPROFILE%\Desktop\Bateria.html" >nul 2>&1
echo [OK] Reporte generado en el Escritorio.
start "" "%USERPROFILE%\Desktop\Bateria.html"
pause
goto MENU

:WUPDATE
echo [INFO] Iniciando motor nativo de Windows Update en consola...
set "wu_script=%temp%\wu_update_%random%.ps1"
> "!wu_script!" echo $UpdateSession = New-Object -ComObject Microsoft.Update.Session
>> "!wu_script!" echo $UpdateSession.ClientApplicationID = 'PuntoBat'
>> "!wu_script!" echo $UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
>> "!wu_script!" echo Write-Host "[INFO] Buscando actualizaciones en los servidores... (Esto puede tardar)" -ForegroundColor Cyan
>> "!wu_script!" echo try {
>> "!wu_script!" echo     $SearchResult = $UpdateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
>> "!wu_script!" echo     if ($SearchResult.Updates.Count -eq 0) {
>> "!wu_script!" echo         Write-Host "[OK] El sistema ya esta completamente actualizado." -ForegroundColor Green
>> "!wu_script!" echo     } else {
>> "!wu_script!" echo         Write-Host ("[!] Se encontraron " + $SearchResult.Updates.Count + " actualizaciones:") -ForegroundColor Yellow
>> "!wu_script!" echo         $UpdatesToDownload = New-Object -ComObject Microsoft.Update.UpdateColl
>> "!wu_script!" echo         foreach ($Update in $SearchResult.Updates) {
>> "!wu_script!" echo             Write-Host ("  - " + $Update.Title) -ForegroundColor White
>> "!wu_script!" echo             $UpdatesToDownload.Add($Update) ^| Out-Null
>> "!wu_script!" echo         }
>> "!wu_script!" echo         Write-Host "[INFO] Descargando actualizaciones..." -ForegroundColor Cyan
>> "!wu_script!" echo         $Downloader = $UpdateSession.CreateUpdateDownloader()
>> "!wu_script!" echo         $Downloader.Updates = $UpdatesToDownload
>> "!wu_script!" echo         $Downloader.Download() ^| Out-Null
>> "!wu_script!" echo         Write-Host "[INFO] Instalando actualizaciones..." -ForegroundColor Cyan
>> "!wu_script!" echo         $Installer = $UpdateSession.CreateUpdateInstaller()
>> "!wu_script!" echo         $Installer.Updates = $UpdatesToDownload
>> "!wu_script!" echo         $InstallResult = $Installer.Install()
>> "!wu_script!" echo         Write-Host "[OK] Instalacion completada. (Algunas actualizaciones pueden requerir reinicio)" -ForegroundColor Green
>> "!wu_script!" echo     }
>> "!wu_script!" echo } catch {
>> "!wu_script!" echo     Write-Host "[ERROR] Acceso Denegado: Tu servidor corporativo (WSUS) bloquea la API local." -ForegroundColor Red
>> "!wu_script!" echo     Write-Host "[INFO] Usa la interfaz grafica de Windows para actualizar este equipo en particular." -ForegroundColor Yellow
>> "!wu_script!" echo }
powershell -NoProfile -ExecutionPolicy Bypass -File "!wu_script!"
del /q /f "!wu_script!" >nul 2>&1
if "%1"=="AUTO" exit /b
pause
goto MENU

:PROGRAMAS
echo [INFO] Sincronizando catalogo de Winget (Solucionando error 0x8a15000f)...
winget source update >nul 2>&1
winget upgrade --all --include-unknown --accept-package-agreements --accept-source-agreements --disable-interactivity
if "%1"=="AUTO" exit /b
pause
goto MENU

:TODO
cls & echo [PROCESO AUTOMATICO INICIADO]
call :LIMPIAR AUTO & call :REPARAR AUTO & call :BLOATWARE AUTO & call :WUPDATE AUTO & call :PROGRAMAS AUTO
echo [OK] TAREAS COMPLETADAS.
pause
goto MENU

:DISCO
echo [INFO] Analizando el estado de los discos fisicos instalados...
powershell -NoProfile -Command "Get-PhysicalDisk | Format-Table -AutoSize Model, MediaType, HealthStatus, Size"
pause
goto MENU

:DISM
dism /online /cleanup-image /restorehealth
pause
goto MENU

:POWER
powercfg -duplicatescheme e9a42b02-d5df-448d-aa00-03f14749eb61 >nul 2>&1
powercfg /setactive e9a42b02-d5df-448d-aa00-03f14749eb61 >nul 2>&1
echo [OK] Plan de energia "Alto Rendimiento" activado.
pause
goto MENU

:SPOOLER
net stop spooler >nul 2>&1 & del /Q /F /S "%systemroot%\System32\Spool\Printers\*.*" >nul 2>&1 & net start spooler >nul 2>&1
echo [OK] Cola de impresion reiniciada y limpia.
pause
goto MENU

:IMPRESORAS
echo [INFO] Abriendo el Panel de Dispositivos e Impresoras Clasico...
explorer shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}
pause
goto MENU

:STARTUP
echo [INFO] Abriendo la configuracion de aplicaciones de inicio de Windows 11...
start ms-settings:startupapps
pause
goto MENU

:LOGS
echo [INFO] Abriendo el Visor de Eventos de Windows...
start eventvwr.msc
pause
goto MENU

:HOSTS
echo [INFO] Abriendo el archivo Hosts en el Bloc de notas con permisos de Administrador...
echo Asegurate de guardar los cambios (Ctrl + G) antes de cerrar el Bloc de notas.
start /wait notepad "C:\Windows\System32\drivers\etc\hosts"
echo [OK] Archivo cerrado.
pause
goto MENU

:: ------------------------------------------------------------------------
:: MENU DE INSTALACION 105 APPS Y BUSCADOR
:: ------------------------------------------------------------------------
:INSTALL_MENU
cls
echo ===============================================================================
echo                MEGA-INSTALADOR CORPORATIVO (105 PROGRAMAS)
echo ===============================================================================
echo [NAVEGADORES/COMMS]         [SISTEMA/UTILIDADES]       [DESARROLLO/BD]
echo 1. Google Chrome            36. 7-Zip                  66. VS Code
echo 2. Mozilla Firefox          37. WinRAR                 67. Notepad++
echo 3. Brave Browser            38. PeaZip                 69. IntelliJ IDEA
echo 4. Opera Browser            39. Rufus                  70. PyCharm
echo 5. Microsoft Edge           40. BalenaEtcher           71. DBeaver
echo 6. WhatsApp                 41. Everything             72. SQL Server SSMS
echo 7. Slack                    42. PowerToys              73. MySQL Workbench
echo 8. Microsoft Teams          43. TreeSize Free          74. Postman
echo 9. Zoom                     44. WinDirStat             75. Insomnia REST
echo 10. Discord                 45. Caffeine               [HERRAMIENTAS IT]
echo 11. Telegram                [REDES/REMOTO]             76. Python 3.12
echo 12. Webex                   46. PuTTY                  77. Git
echo 13. Skype                   47. WinSCP                 78. GitHub Desktop
echo 14. Signal                  48. FileZilla              79. Node.js
echo 15. Viber                   49. AnyDesk                80. Java 8 JRE
echo [OFICINA/PDF]               50. TeamViewer             81. Docker Desktop
echo 16. Microsoft Office        51. RustDesk               82. VirtualBox
echo 17. LibreOffice             52. VNC Viewer             83. VMware Player
echo 18. Adobe Reader            53. MobaXterm              84. Citrix Workspace
echo 19. Foxit Reader            54. Termius                85. Power BI Desktop
echo 20. OnlyOffice              55. Bitvise SSH            [MULTIMEDIA/DISENO]
echo 21. Obsidian                [SEGURIDAD/VPN]            86. VLC Player
echo 22. Notion                  56. FortiClient VPN        87. OBS Studio
echo 23. Evernote                57. Cisco Secure Client    88. Spotify
echo 24. PDF24 Creator           58. OpenVPN Connect        89. iTunes
echo 25. Sumatra PDF             59. WireGuard VPN          90. Audacity
echo [NUBE/DRIVE]                60. Malwarebytes           91. GIMP
echo 26. Google Drive            61. Kaspersky Free         92. Inkscape
echo 27. Dropbox                 62. Bitdefender            93. Krita
echo 28. OneDrive                63. Avast Free             94. Blender
echo 29. Terabox                 64. AVG Antivirus          95. HandBrake
echo 30. MEGASync                65. KeePassXC              [ANALISIS/AVANZADO]
echo 31. Nextcloud               [DESCARGAS / P2P]          96. Sysinternals
echo 32. iCloud                  101. Free Download Mgr     97. Windows Terminal
echo 33. Box Drive               102. qBittorrent           98. ShareX
echo 34. Tresorit                103. IDM                   99. CPU-Z
echo 35. pCloud                  104. Motrix                100. Wireshark
echo                             105. JDownloader           
echo ===============================================================================
echo [B] BUSCAR PROGRAMA POR NOMBRE                [0] VOLVER AL MENU PRINCIPAL
echo ===============================================================================
set "soft="
set /p "soft=Escribe numeros (ej: 1 49 102), 'B' para buscar o '0' para salir: "

if /i "%soft%"=="0" goto MENU
if /i "%soft%"=="B" goto BUSCADOR

if not "%soft%"=="" (
    echo.
    echo [INFO] Sincronizando catalogo de Winget para evitar errores de descarga...
    winget source update >nul 2>&1
    for %%i in (%soft%) do (
        call :PROCESAR_INSTALACION %%i
    )
    echo.
    echo [OK] PROCESO FINALIZADO.
    pause
    goto INSTALL_MENU
)
goto INSTALL_MENU

:: ------------------------------------------------------------------------
:: MOTOR DE BÚSQUEDA
:: ------------------------------------------------------------------------
:BUSCADOR
cls
echo ===================================================
echo               BUSCADOR DE PROGRAMAS
echo ===================================================
set /p "termino=Escribe el nombre del programa (ej: zip, sql, pdf): "
echo.
echo Resultados para "%termino%":
echo ---------------------------------------------------
set "encontrado=0"
for /L %%i in (1,1,105) do (
    echo !name[%%i]! | find /i "%termino%" >nul
    if !errorlevel! equ 0 (
        echo [%%i] !name[%%i]!
        set "encontrado=1"
    )
)
if "!encontrado!"=="0" echo No se encontraron resultados.
echo ---------------------------------------------------
pause
goto INSTALL_MENU

:: ------------------------------------------------------------------------
:: MOTOR DINAMICO DE INSTALACION
:: ------------------------------------------------------------------------
:PROCESAR_INSTALACION
set "prog_id=!id[%1]!"
set "prog_name=!name[%1]!"

if not "!prog_id!"=="" (
    echo [PROCESANDO] Instalando %1: !prog_name!...
    winget install --id !prog_id! --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
) else (
    echo [!] Numero %1 no valido, saltando...
)
exit /b

:: ------------------------------------------------------------------------
:: MODULO DE DESINSTALACION DINAMICA
:: ------------------------------------------------------------------------
:UNINSTALL_MENU
cls
echo ===================================================
echo       MODULO DE DESINSTALACION DINAMICA
echo ===================================================
echo Escaneando el sistema en busca de software...
echo (Esto tomara unos segundos, por favor espere)
echo.
set "ps_uninst=%temp%\uninst_%random%.ps1"
> "!ps_uninst!" echo $apps = Get-ItemProperty @('HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*') -ErrorAction SilentlyContinue ^| Where-Object { $_.DisplayName -and $_.SystemComponent -ne 1 -and $_.ParentKeyName -eq $null } ^| Select-Object DisplayName ^| Sort-Object DisplayName -Unique
>> "!ps_uninst!" echo $i = 1
>> "!ps_uninst!" echo foreach ($app in $apps) { Write-Host ("[{0,3}] {1}" -f $i, $app.DisplayName); $i++ }
>> "!ps_uninst!" echo Write-Host ""
>> "!ps_uninst!" echo $sel = Read-Host "Selecciona programa(s) a desinstalar separados por un espacio (ej: 1 5 12) o 0 para cancelar"
>> "!ps_uninst!" echo if ($sel -eq '0' -or [string]::IsNullOrWhiteSpace($sel)) { exit }
>> "!ps_uninst!" echo $nums = $sel -split '\s+'
>> "!ps_uninst!" echo foreach ($n in $nums) {
>> "!ps_uninst!" echo     if ($n -match '^\d+$') {
>> "!ps_uninst!" echo         $idx = [int]$n - 1
>> "!ps_uninst!" echo         if ($idx -ge 0 -and $idx -lt $apps.Count) {
>> "!ps_uninst!" echo             $name = $apps[$idx].DisplayName.Trim()
>> "!ps_uninst!" echo             Write-Host ("`n[DESINSTALANDO] " + $name + "...") -ForegroundColor Yellow
>> "!ps_uninst!" echo             winget uninstall --name "$name" --silent --accept-source-agreements --disable-interactivity
>> "!ps_uninst!" echo         }
>> "!ps_uninst!" echo     }
>> "!ps_uninst!" echo }
powershell -NoProfile -ExecutionPolicy Bypass -File "!ps_uninst!"
del /q /f "!ps_uninst!" >nul 2>&1
echo.
echo [OK] Proceso de desinstalacion finalizado.
pause
goto MENU

:: ------------------------------------------------------------------------
:: MENU AVANZADO DE REDES (VLSM / PING / ESCANER / UTILIDADES)
:: ------------------------------------------------------------------------
:NET_MENU
cls
echo ===============================================================================
echo                       MENU AVANZADO DE REDES (NETWORKING)
echo ===============================================================================
echo 1. Calculadora IP / Subneteo (VLSM / CIDR)
echo 2. Escaner de Puertos TCP (Local o Remoto)
echo 3. Ver Tabla de Enrutamiento (route print)
echo 4. Ver Configuracion IP Detallada (ipconfig /all)
echo 5. Ping Extendido con Marca de Tiempo
echo 6. Trazar Ruta a un Servidor (tracert)
echo 7. Obtener IP Publica Actual
echo 8. Ver Contrasenas Wi-Fi Guardadas
echo 9. Consulta DNS (nslookup)
echo 10. Ver Dispositivos en la Red Local (Tabla ARP)
echo 11. Ver Conexiones Activas (netstat)
echo 0. Volver al Menu Principal
echo ===============================================================================
set "netop="
set /p "netop=Seleccione numero (0-11): "

if "%netop%"=="1" goto NET_CALC
if "%netop%"=="2" goto NET_SCAN
if "%netop%"=="3" goto NET_ROUTE
if "%netop%"=="4" goto NET_IP
if "%netop%"=="5" goto NET_PING
if "%netop%"=="6" goto NET_TRACE
if "%netop%"=="7" goto NET_PUB
if "%netop%"=="8" goto NET_WIFI
if "%netop%"=="9" goto NET_DNS
if "%netop%"=="10" goto NET_ARP
if "%netop%"=="11" goto NET_NETSTAT
if "%netop%"=="0" goto MENU
goto NET_MENU

:NET_CALC
cls
echo ===================================================
echo             CALCULADORA IP / SUBNETEO
echo ===================================================
set "ps_calc=%temp%\vlsm_%random%.ps1"
> "!ps_calc!" echo $host.UI.RawUI.WindowTitle = 'Calculadora VLSM'
>> "!ps_calc!" echo $input = Read-Host "Ingresa IP y Prefijo (Ejemplo: 192.168.10.5/26)"
>> "!ps_calc!" echo if ($input -match '^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/(\d{1,2})$') {
>> "!ps_calc!" echo     $ipStr = $matches[1]; $cidr = [int]$matches[2]
>> "!ps_calc!" echo     if ($cidr -gt 32 -or $cidr -lt 0) { Write-Host "Prefijo invalido." -Fore Red; exit }
>> "!ps_calc!" echo     $ip = [System.Net.IPAddress]::Parse($ipStr).GetAddressBytes()
>> "!ps_calc!" echo     [Array]::Reverse($ip)
>> "!ps_calc!" echo     $ipNum = [BitConverter]::ToUInt32($ip, 0)
>> "!ps_calc!" echo     $binStr = ('1' * $cidr) + ('0' * (32 - $cidr))
>> "!ps_calc!" echo     $maskNum = [Convert]::ToUInt32($binStr, 2)
>> "!ps_calc!" echo     $netNum = $ipNum -band $maskNum
>> "!ps_calc!" echo     $wildcard = [uint32]4294967295 - $maskNum
>> "!ps_calc!" echo     $bcastNum = $netNum -bor $wildcard
>> "!ps_calc!" echo     $maskBytes = [BitConverter]::GetBytes($maskNum); [Array]::Reverse($maskBytes); $maskStr = ($maskBytes -join '.')
>> "!ps_calc!" echo     $netBytes = [BitConverter]::GetBytes($netNum); [Array]::Reverse($netBytes); $netStr = ($netBytes -join '.')
>> "!ps_calc!" echo     $bcastBytes = [BitConverter]::GetBytes($bcastNum); [Array]::Reverse($bcastBytes); $bcastStr = ($bcastBytes -join '.')
>> "!ps_calc!" echo     $hosts = if ($cidr -eq 32) {1} elseif ($cidr -eq 31) {2} else { [Math]::Pow(2, 32 - $cidr) - 2 }
>> "!ps_calc!" echo     Write-Host ""
>> "!ps_calc!" echo     Write-Host "[+] DIRECCION IP:   $ipStr" -ForegroundColor Cyan
>> "!ps_calc!" echo     Write-Host "[+] MASCARA:        $maskStr" -ForegroundColor Cyan
>> "!ps_calc!" echo     Write-Host "[+] RED (NETWORK):  $netStr" -ForegroundColor Green
>> "!ps_calc!" echo     Write-Host "[+] BROADCAST:      $bcastStr" -ForegroundColor Yellow
>> "!ps_calc!" echo     Write-Host "[+] HOSTS UTILES:   $hosts" -ForegroundColor Magenta
>> "!ps_calc!" echo } else { Write-Host "Formato invalido." -ForegroundColor Red }
powershell -NoProfile -ExecutionPolicy Bypass -File "!ps_calc!"
del /q /f "!ps_calc!" >nul 2>&1
echo.
pause
goto NET_MENU

:NET_SCAN
echo ===================================================
set /p "ipscan=Ingresa la IP o Dominio a escanear: "
set /p "portscan=Ingresa el puerto (ej: 80, 443, 3389): "
powershell -Command "Write-Host 'Escaneando puerto en %ipscan%...' -Fore Cyan; $t = Test-NetConnection -ComputerName '%ipscan%' -Port '%portscan%' -InformationLevel Quiet; if($t){Write-Host '[ABIERTO] El puerto %portscan% esta respondiendo.' -Fore Green}else{Write-Host '[CERRADO] El puerto no responde o esta bloqueado por Firewall.' -Fore Red}"
pause
goto NET_MENU

:NET_ROUTE
route print
pause
goto NET_MENU

:NET_IP
ipconfig /all
pause
goto NET_MENU

:NET_PING
echo [INFO] Presiona Ctrl + C para detener el Ping.
set /p "ipping=Ingresa la IP o Dominio para Ping: "
ping %ipping% -t | powershell -Command "ForEach-Object { '{0} - {1}' -f (Get-Date -f 'yyyy-MM-dd HH:mm:ss'), $_ }"
pause
goto NET_MENU

:NET_TRACE
set /p "iptrace=Ingresa la IP o Dominio a trazar: "
tracert %iptrace%
pause
goto NET_MENU

:NET_PUB
echo [INFO] Consultando servidor externo para obtener IP Publica...
curl -s ifconfig.me
echo.
echo.
pause
goto NET_MENU

:NET_WIFI
echo [INFO] Redes Wi-Fi guardadas en este equipo:
netsh wlan show profiles | findstr "Perfil"
echo.
set /p "wifiname=Escribe el nombre exacto de la red para ver su clave: "
echo.
netsh wlan show profile name="%wifiname%" key=clear | findstr /R /C:"Contenido de la clave" /C:"Key Content"
if %errorlevel% neq 0 echo [!] No se encontro la clave o el nombre es incorrecto.
pause
goto NET_MENU

:NET_DNS
set /p "dnsdomain=Ingresa el dominio a consultar (ej: google.com): "
nslookup %dnsdomain%
pause
goto NET_MENU

:NET_ARP
echo [INFO] Mostrando tabla ARP (Dispositivos descubiertos en la red local)...
arp -a
pause
goto NET_MENU

:NET_NETSTAT
echo [INFO] Mostrando conexiones de red activas (ESTABLISHED)...
netstat -ano | findstr ESTABLISHED
pause
goto NET_MENU

:: ------------------------------------------------------------------------
:: MENU DE RESPALDO Y DISCOS (CLONACION / ISO / USB)
:: ------------------------------------------------------------------------
:CLON_MENU
cls
echo ===============================================================================
echo                MODULO DE RESPALDO Y MEDIOS (CLONACION / ISO)
echo ===============================================================================
echo [ADVERTENCIA] La clonacion a bajo nivel requiere herramientas de terceros. 
echo Windows no posee un comando nativo seguro para clonar discos bit a bit sin 
echo riesgo critico de perdida de datos.
echo.
echo 1. Hacer Copia de Seguridad de un Pendrive USB al Escritorio (Seguro)
echo 2. Instalar Macrium Reflect Free (Software Profesional para Clonar Discos)
echo 3. Instalar AnyBurn (Software Ligero para Crear y Grabar ISOs)
echo 4. Abrir Rufus (Crear USB Booteable) - *Requiere instalacion previa (Menu 25)*
echo 0. Volver al Menu Principal
echo ===============================================================================
set "clonop="
set /p "clonop=Seleccione numero (0-4): "

if "%clonop%"=="1" goto USB_BACKUP
if "%clonop%"=="2" goto INSTALL_MACRIUM
if "%clonop%"=="3" goto INSTALL_ANYBURN
if "%clonop%"=="4" goto OPEN_RUFUS
if "%clonop%"=="0" goto MENU
goto CLON_MENU

:USB_BACKUP
cls
echo ===================================================
echo          COPIA DE SEGURIDAD DE UNIDAD USB
echo ===================================================
wmic logicaldisk get caption,volumename,drivetype | findstr "2"
echo.
set /p "usb_drive=Ingresa la LETRA de tu pendrive (Ejemplo: E): "
if "%usb_drive%"=="" goto CLON_MENU
set "dest_folder=%USERPROFILE%\Desktop\Respaldo_USB_%usb_drive%"
echo [INFO] Copiando archivos de %usb_drive%:\ hacia %dest_folder%...
robocopy "%usb_drive%:\" "%dest_folder%" /E /Z /R:3 /W:1 /MT:8
echo.
echo [OK] Copia finalizada. Revisa la carpeta en tu Escritorio.
pause
goto CLON_MENU

:INSTALL_MACRIUM
echo [INFO] Instalando Macrium Reflect (Herramienta de Clonacion Profesional)...
winget install --id ParamountSoftware.MacriumReflect --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
pause
goto CLON_MENU

:INSTALL_ANYBURN
echo [INFO] Instalando AnyBurn (Herramienta para crear y editar ISOs)...
winget install --id AnyBurn.AnyBurn --silent --accept-package-agreements --accept-source-agreements --disable-interactivity
pause
goto CLON_MENU

:OPEN_RUFUS
echo [INFO] Abriendo Rufus...
start rufus.exe >nul 2>&1
if %errorlevel% neq 0 echo [!] Rufus no esta instalado. Ve al Menu 25 (Opcion 39) para instalarlo.
pause
goto CLON_MENU

Comentarios

Entradas más populares de este blog

PuntoBat v2.0

PuntoBat V3.0