Skip to content

yeisonmoran/IT-Inventory-Automation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🖥️ IT-Inventory-Automation

PowerShell Windows Active Directory Estado

Automatización completa de inventario de activos tecnológicos para entornos corporativos.
Reemplaza el proceso manual de visitar cada puesto de trabajo por scripts que recolectan toda la información del hardware y software de forma remota o local.

📋 Ver scripts · 🚀 Inicio rápido · 📁 Estructura · 🤝 Contribuir


📌 El problema que resuelve

En entornos corporativos con decenas o cientos de equipos, el inventario manual implica:

  • ❌ Visitar físicamente cada puesto de trabajo
  • ❌ Llamar a cada usuario para obtener datos
  • ❌ Anotar información a mano con riesgo de errores
  • ❌ Semanas de trabajo para inventariar múltiples sedes

Esta solución lo automatiza en minutos, sin importar si los equipos están en dominio Active Directory o en sedes remotas sin dominio.


✨ Características

Característica Dominio AD Fuera del dominio
Consulta remota sin intervención del usuario
Detección automática de hardware
Detección de tipo de disco (SSD / HDD)
Usuario activo en el momento de la consulta
Envío automático a carpeta de red
Interfaz guiada para el usuario final
Exportación a CSV compatible con Excel
Progreso en tiempo real por consola

📋 Scripts

Inventario-Dominio.ps1

Para equipos unidos al dominio Active Directory.

Se ejecuta desde el equipo del administrador TI. Se conecta remotamente a todos los equipos del dominio (o una OU específica) usando WMI/CIM y recolecta:

  • Fabricante, modelo y número de serie
  • Procesador, núcleos, RAM
  • Capacidad y tipo de disco (SSD/HDD)
  • Sistema operativo y versión
  • Usuario activo en sesión
  • Dirección IP y MAC
  • Fecha del último inicio del sistema

Reporte-Local.ps1

Para equipos en sedes remotas o sin dominio.

Se distribuye al usuario (por correo o carpeta compartida). El usuario lo ejecuta con un doble clic, completa un formulario breve con su nombre, cargo y área, y el script recolecta el resto automáticamente. El reporte se envía a:

  1. Carpeta de red compartida (si está configurada)
  2. Correo electrónico (si está configurado)
  3. Escritorio del usuario (como respaldo automático)

🚀 Inicio rápido

Requisitos previos

  • Windows 10 / 11
  • PowerShell 5.1 o superior
  • Para Inventario-Dominio.ps1: permisos de Administrador de Dominio y módulo RSAT instalado
  • Para Reporte-Local.ps1: ningún requisito especial

1. Clonar el repositorio

git clone https://github.com/Yeisonmoran/IT-Inventory-Automation.git
cd IT-Inventory-Automation

2. Permitir ejecución de scripts (una sola vez)

Abrir PowerShell como Administrador y ejecutar:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

3. Ejecutar según el escenario

Equipos en dominio — todos los equipos:

.\Inventario-Dominio.ps1

Equipos en dominio — OU específica:

.\Inventario-Dominio.ps1 -OU "OU=Laptops,DC=empresa,DC=com"

Equipos en dominio — lista manual:

.\Inventario-Dominio.ps1 -Equipos "PC-VENTAS01","PC-RRHH02","PC-ADMIN03"

Equipo local / fuera del dominio:

.\Reporte-Local.ps1

Si aparece error de firma digital:

PowerShell -ExecutionPolicy Bypass -File ".\Reporte-Local.ps1"

⚙️ Configuración

Reporte-Local.ps1 — carpeta de red

Edita las siguientes líneas al inicio del script según tu entorno:

$Config = @{
    CarpetaDestino = "\\TU-SERVIDOR\Inventario\Reportes"  # Ruta UNC de la carpeta compartida
    EmailDestino   = "ti@tuempresa.com"                   # Correo destino (opcional)
    EmailSMTP      = "smtp.tuempresa.com"                 # Servidor SMTP (opcional)
}

Inventario-Dominio.ps1 — timeout y filtros

# Ajustar tiempo de espera por equipo (segundos)
.\Inventario-Dominio.ps1 -TimeoutSegundos 15

# Solo consultar equipos que responden ping
.\Inventario-Dominio.ps1 -SoloActivos

📁 Estructura del repositorio

IT-Inventory-Automation/
│
├── 📄 Inventario-Dominio.ps1     # Script para equipos en Active Directory
├── 📄 Reporte-Local.ps1          # Script para equipos sin dominio
├── 📊 Inventario_Equipos.xlsx    # Plantilla Excel con dashboard y validaciones
└── 📖 README.md                  # Esta documentación

📊 Datos recolectados

El CSV generado incluye los siguientes campos:

Campo Descripción
Nombre_Equipo Hostname del equipo en la red
Usuario_Activo Usuario con sesión abierta al momento de la consulta
Fabricante / Modelo Marca y referencia del equipo
Serial Número de serie (clave para garantías)
Procesador / Nucleos_CPU CPU y cantidad de núcleos lógicos
RAM_GB Memoria RAM total instalada
Disco_Total_GB / Tipo_Disco Capacidad y tipo SSD o HDD
Sistema_Operativo Nombre y versión del S.O.
IP / MAC Dirección de red del equipo
Ultimo_Inicio Fecha y hora del último arranque
Fecha_Consulta Cuándo se realizó el inventario

🗺️ Roadmap

  • Exportación directa a Excel con formato (sin paso por CSV)
  • Detección de software instalado (Office, antivirus, etc.)
  • Comparación entre inventarios para detectar cambios
  • Panel web en HTML con resumen visual del inventario
  • Soporte para equipos macOS y Linux

🤝 Contribuir

Las contribuciones son bienvenidas. Si encuentras un bug o tienes una mejora:

  1. Haz un fork del repositorio
  2. Crea una rama: git checkout -b mejora/nombre-de-la-mejora
  3. Haz commit de tus cambios: git commit -m 'Agrega soporte para X'
  4. Haz push: git push origin mejora/nombre-de-la-mejora
  5. Abre un Pull Request

👤 Autor

Yeison Moran
GitHub


Construido con 💙 para equipos de soporte TI que merecen trabajar mejor, no más.

About

Scripts PowerShell para automatizar el inventario de activos tecnológicos en entornos corporativos con y sin Active Directory

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors