JWAD — Javizcape Windows App Deployer
Un script de código abierto que instala, valida y audita el software esencial de un equipo Windows en un solo comando — sin clics, sin instaladores sueltos, sin sorpresas.
Un despliegue, no una lista de tareas
JWAD nació para técnicos, administradores de sistemas e integradores que necesitan dejar decenas de equipos listos para producción sin repetir la misma secuencia de clics una y otra vez. Todo el flujo corre en segundo plano: valida, instala, verifica y reporta.
Cero interacción
Todo el flujo corre desapercibido, sin ventanas de instalación que interrumpan al técnico.
Auto-elevación UAC
Detecta permisos insuficientes y se relanza como Administrador sin intervención manual.
Híbrido Winget + GitHub API
Usa el repositorio oficial de Microsoft y recurre a releases de GitHub cuando no hay paquete.
Telemetría real
CPU, RAM, disco y temperatura vía WMI/CIM entregados en un reporte JSON al finalizar.
Ejecución rápida
Abre PowerShell como Administrador, pega el comando y presiona Enter. JWAD se encarga del resto.
irm https://javizcape.github.io/JWAD/JWAD.ps1 | iex
⚠ Tu navegador o una extensión bloqueó la copia automática. El texto ya está seleccionado arriba — pulsa Ctrl+C (o clic derecho → Copiar).
iex (curl.exe -s https://javizcape.github.io/JWAD/JWAD.ps1 | Out-String)
⚠ Tu navegador o una extensión bloqueó la copia automática. El texto ya está seleccionado arriba — pulsa Ctrl+C (o clic derecho → Copiar).
github.com/javizcape/JWAD/blob/main/JWAD.ps1
Publicado junto a cada release en GitHub — compáralo antes de ejecutar
Descargar JWAD.ps1 e inspecciónalo antes de ejecutarlo con .\JWAD.ps1
¿Tu navegador o uBlock Origin marcó este comando como sospechoso?
Comparé esta página con el mismo comando copiado desde el README.md del repositorio, y en efecto ahí no se bloquea. La diferencia no está en el texto del comando — es idéntico — sino en dónde vive: el README se copia con el botón nativo de GitHub, servido desde github.com, una interfaz que GitHub controla por completo y que no puede ejecutar HTML/JS de terceros. Esta página, en cambio, es HTML propio alojado en github.io (GitHub Pages) — hosting gratuito que sí permite código propio, y que por eso mismo ha sido usado repetidamente como vector real de phishing y ClickFix (campañas documentadas como PhishinGit y variantes de CastleLoader abusan exactamente de páginas *.github.io). Los bloqueadores razonablemente inspeccionan con más severidad una página independiente en github.io que la propia interfaz de github.com. No es algo que un cambio de código en esta página pueda igualar — es una diferencia de contexto, no de implementación.
Ejecuta PowerShell directamente como Administrador para evitar el paso extra de re-elevación.
Requisitos
- Windows 10 u 11, arquitectura x64 (AMD64)
- PowerShell 5.1 o superior
- Conexión a internet activa
- Winget instalado (incluido en builds modernas)
Características principales
Cada decisión del script está pensada para dejar un equipo auditable, no solo instalado.
Auto-elevación de privilegios (UAC)
Detecta si el usuario estándar requiere permisos de administrador y re-invoca la sesión sin interrumpir el flujo.
Filtro estricto de arquitectura
Validación en tiempo real que garantiza ejecución exclusiva en entornos de 64 bits (AMD64).
Despliegue híbrido silencioso
Prioriza instalación nativa vía Winget; recurre a extracción por GitHub API para apps sin instalador oficial empaquetado (ej. FlyPhotos, AB Download Manager).
Gestión de errores integrada
Captura códigos de salida de Windows (0, 3010, etc.) para validar cada instalación antes de continuar.
Reporte de auditoría
Genera un JSON con hardware, rendimiento y estado final de cada aplicación instalada.
Cómo funciona
El mismo recorrido que hace el script, de principio a fin.
Verifica la arquitectura
Si el equipo no es AMD64, el script se detiene de inmediato.
Confirma privilegios de administrador
Si faltan, se re-invoca a sí mismo solicitando elevación UAC.
Recorre el catálogo de aplicaciones
Intenta primero la instalación nativa vía Winget.
Cae a GitHub API si no hay paquete
Descarga y extrae el release oficial cuando la app no está en Winget.
Valida el código de salida
Registra éxito o fallo por aplicación antes de continuar con la siguiente.
Ejecuta el diagnóstico de hardware
Consulta CPU, RAM, disco y temperatura vía WMI/CIM.
Genera Reporte_Despliegue.json
Guarda el resultado completo en el Escritorio, listo para auditoría.
Software incluido
Siempre se descarga la última versión estable de cada aplicación.
🧩 Requisitos de sistema
| Visual C++ Redistributable 2015+ | Runtime requerido por la mayoría de software Win32 moderno |
| .NET Framework | Activación vía DISM sobre componentes nativos de Windows |
| Java JRE x64 | Entorno de ejecución Java de 64 bits |
🧰 Herramientas de sistema
| 7-Zip | Compresor/descompresor universal |
| WinRAR x64 | Gestor de archivos comprimidos |
| Bulk Crap Uninstaller | Desinstalación masiva y limpieza de residuos |
🎬 Ofimática y multimedia
| SumatraPDF | Lector de PDF ligero y rápido |
| VLC Media Player | Reproductor multimedia universal |
| FlyPhotos | Visor de imágenes de alto rendimiento |
🌐 Navegadores web
| Google Chrome | Navegador de propósito general |
| Mozilla Firefox | Navegador orientado a privacidad y extensiones |
| Mullvad Browser | Navegador enfocado en anonimato |
| Microsoft Edge | Navegador nativo de Windows |
🔌 Utilidades de red
| AB Download Manager | Gestor de descargas con soporte multi-hilo |
Reporte de telemetría
Al finalizar, JWAD genera Reporte_Despliegue.json en el Escritorio con datos listos para auditar el equipo.
- Hardware — fabricante, modelo, procesador y arquitectura
- Rendimiento — capacidad total y % de uso de RAM y disco
- Diagnóstico térmico — temperatura de CPU vía sensores WMI/CIM
- Auditoría — tiempo y estado (éxito/fallo) por aplicación
{
"hardware": {
"fabricante": "Dell Inc.",
"modelo": "OptiPlex 7090",
"procesador": "Intel Core i5-11500",
"arquitectura": "x64"
},
"rendimiento": {
"ram_total_gb": 16,
"ram_uso_porcentaje": 42,
"disco_c_total_gb": 476,
"disco_c_uso_porcentaje": 61
},
"diagnostico_termico": {
"cpu_temp_celsius": 48.5,
"fuente": "WMI/CIM"
},
"auditoria_instalacion": [
{ "app": "Google Chrome", "estado": "Éxito", "tiempo_segundos": 14.2 },
{ "app": "VLC Media Player", "estado": "Éxito", "tiempo_segundos": 9.8 },
{ "app": "FlyPhotos", "estado": "Fallo", "tiempo_segundos": 3.1 }
]
}
Personalización
¿Necesitas otro catálogo para tus propios despliegues? Edita la sección de configuración del script y ajusta:
- El listado de IDs de Winget a instalar
- Las URLs de releases de GitHub para apps sin paquete oficial
- El nombre y la ruta de salida del reporte JSON
Preguntas frecuentes
¿Por qué el comando falla en mi red corporativa?
Algunos proveedores o políticas de DNS bloquean irm. Usa el método alternativo con curl.exe de la sección de instalación.
¿Por qué uBlock Origin u otro bloqueador marca el comando como "ClickFix"?
Es una detección por contexto, no un análisis del script en sí: esta página es HTML propio alojado en GitHub Pages (github.io), un hosting gratuito que también ha sido usado para phishing y ClickFix reales — por eso se inspecciona con más severidad que el propio github.com. Si copias el mismo comando desde el README del repositorio, usando el botón nativo de GitHub, no se bloquea. Verifica siempre el código fuente antes de ejecutar cualquier one-liner remoto, sea de JWAD o de cualquier otro proyecto.
¿Puedo evitar el bloqueo cambiando algo en esta página?
No de forma confiable. El detector actúa dentro del navegador de cada visitante, sobre el propio comando (irm ... | iex), que es necesariamente igual sea cual sea el HTML que lo muestre. No vamos a diseñar esta página para evadir una protección de seguridad — aunque el script sea legítimo, el mismo truco serviría para ocultar uno que no lo es. La ruta segura es copiar desde GitHub o descargar JWAD.ps1 directamente (ver más arriba).
¿Puedo copiar el comando si el navegador bloquea el acceso al portapapeles?
Sí. Si la API de portapapeles está bloqueada por una extensión, el botón "Copiar" recurre automáticamente a un método alternativo. Si aun así falla, selecciona el texto del bloque de comando manualmente con el mouse.
¿Funciona en Windows con arquitectura ARM64?
No. JWAD valida explícitamente AMD64 y detiene la ejecución en cualquier otra arquitectura.
¿Puedo ejecutarlo sin ser administrador?
Sí. El script detecta la falta de privilegios y se re-invoca a sí mismo solicitando elevación UAC.
Hoja de ruta
- Modo silencioso configurable por parámetros de línea de comandos
- Catálogo de aplicaciones editable vía archivo config.json externo
- Soporte para ARM64
- Registro de logs en formato .log además del reporte JSON
Contribuciones
Las contribuciones son bienvenidas. ¿Encontraste un error? Abre un issue describiendo el problema y, si es posible, adjunta el Reporte_Despliegue.json generado.
Haz un fork del repositorio
Crea una rama feature/nueva-funcion
Confirma tus cambios con un commit descriptivo
Sube la rama a tu fork
Abre un Pull Request
Licencia
Este proyecto es de código abierto y se distribuye bajo la licencia MIT. Eres libre de auditar el código fuente, modificarlo, redistribuirlo y adaptarlo a tus propios flujos de trabajo o necesidades de administración de sistemas.
Ver LICENSE completo