# # Automatización del soporte TI con GUI de PowerShell: Experiencia de desarrollo interno
En un dominio de Active Directory que gestiona entre 4.000 y 5.000 estaciones de trabajo Windows 7–10, los tickets de soporte llegaban sin direcciones IP ni nombres de host. Acceder a la información del PC de un usuario requería búsquedas manuales en ADUC: copiar el nombre de usuario del ticket, navegar por la consola y extraer el nombre de host del campo Descripción de la cuenta. Esto ralentizaba el procesamiento, especialmente al recopilar configuraciones de hardware o manejar tareas rutinarias sin acceso remoto.
La solución: un script personalizado de PowerShell con interfaz GUI. Introduce un nombre de usuario y la herramienta extrae el nombre de host de AD, recopila detalles de la cuenta y del PC, y ofrece botones para acciones. Los resultados aparecen en una sola ventana: panel superior para información, medio para botones funcionales e inferior para salida.
El script se desarrolló desde cero basado en el análisis de la GUI de código abierto LazyWinAdmin (2011), adaptado a un entorno corporativo. Esto garantizó seguridad, adaptación a tareas específicas y experiencia práctica con PowerShell a nivel de desarrollador intermedio.
Características clave de la herramienta
La herramienta cubría escenarios cotidianos de soporte TI. Requería derechos de administrador en todos los PC del dominio y acceso a la red (WinRM, SMB, ICMP).
Aquí está la funcionalidad principal:
- Búsqueda y datos de AD: nombre de host por usuario, hora del último inicio de sesión, vencimiento de contraseña, ping al nombre de host, nombre completo, teléfono, ID de empleado, pertenencias a grupos.
- Acceso remoto: MSRA, Dameware, RDP—a tu elección.
- Diagnósticos de hardware: configuración del PC (Get-WmiObject Win32_ComputerSystem, Win32_Processor, etc.), estado S.M.A.R.T. de HDD.
- Administración: lanzar mmc 'Administración de equipos' con derechos elevados, PS Remoting, cmd con derechos de administrador, reinicio/apagado.
- Mantenimiento: limpiar archivos temporales (sin GPO necesario), calcular espacio para perfiles locales/itinerantes, copiar instaladores de software.
- Software y cuotas: lista de software instalado (Get-WmiObject Win32_Product), tamaño de buzón de Exchange.
- Funciones especiales: reconfigurar reglas del Firewall de Windows, ajustes de registro para periféricos, enviar mensajes al PC, referencia de resolución de tickets.
- Operaciones masivas: exportaciones de AD (miembros de grupos, empleados por puesto), agregar a grupos.
La implementación se basó en los módulos ActiveDirectory, WMI/CIM y WinRM. La GUI se construyó con Windows Forms (Add-Type -AssemblyName System.Windows.Forms), con un TextBox para entrada de usuario, DataGridView para salida y Buttons para acciones.
Desarrollo y mejoras
Inicialmente, el script manejaba búsquedas de nombres de host. Las funciones se añadieron gradualmente según surgían tareas rutinarias: desde diagnósticos hasta automatizar instalaciones de software. El principio rector: operaciones de un clic con registro en la GUI.
Ejemplo de lógica para nombre de host:
$username = $textboxLogin.Text
$user = Get-ADUser -Identity $username -Properties Description
$hostname = $user.Description
Para inventario de hardware:
Invoke-Command -ComputerName $hostname -ScriptBlock { Get-WmiObject Win32_Processor | Select Name, NumberOfCores }
La herramienta sirvió a un equipo de 15 especialistas durante 3 años, acelerando la resolución de tickets. Limitaciones: dependencia de derechos de administrador, no disponibles alternativas de software nacional en el momento del despliegue.
Lecciones clave
- El script redujo el tiempo de búsqueda de datos de minutos a segundos, minimizando el trabajo manual en ADUC.
- Cubre el 80% de tareas rutinarias de nivel 2 sin conectar al PC.
- Requiere derechos completos de administrador de dominio; la funcionalidad es limitada en entornos restringidos.
- Basado en PowerShell 5.1+ con módulos de AD y WinRM habilitado.
- Escalable mediante perfiles (conjuntos de botones diferentes por roles).
— Editorial Team
Aún no hay comentarios.