jueves, 12 de septiembre de 2024
Automatiza el Inventario de Equipos con PowerShell: Guía Paso a Paso
¿Alguna vez te has preguntado cómo puedes automatizar la recopilación de información vital sobre los equipos en tu red? 🖥️💾 En el mundo de la administración de sistemas, contar con datos precisos y actualizados es crucial. Hoy, te mostraré cómo usar un script de PowerShell para obtener un inventario detallado de cada equipo en tu dominio de forma automática y eficiente. 🚀
¿Qué Vamos a Lograr? 🎯
Con nuestro script de PowerShell, obtendrás:
- Dirección IP: LAN inalámbrica y Ethernet.
- Información del Hardware: Marca, modelo y número de serie.
- Datos de Red: MAC addresses para Ethernet y WiFi.
- Sistema Operativo: Información sobre el sistema operativo instalado.
- Memoria y Disco Duro: Capacidad total de RAM y disco.
- Tipo de Disco: SSD o HDD.
- Procesador: Nombre y velocidad.
- Estado de BitLocker: Verificar si la protección de disco está activa.
- Paquete de Office: Si está instalado, incluir el número de serie de la licencia.
Paso 1: El Script PowerShell 🔧
Aquí tienes el script que hará todo el trabajo pesado. Simplemente copia y guarda este script en un archivo .ps1
y colócalo en la carpeta de documentos de los usuarios o en una ubicación accesible en la red.
# Recolectar información de la máquina
$info = @{
DateTime = Get-Date -Format "yyyy-MM-dd_HH-mm-ss"
User = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
Hostname = $env:COMPUTERNAME
'IP LAN Inalambrica' = (Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias 'Wi-Fi' -ErrorAction SilentlyContinue | Where-Object { $_.IPAddress -notlike '169.254.*' } | Select-Object -First 1).IPAddress
'MAC WiFi' = (Get-NetAdapter -Name 'Wi-Fi' -ErrorAction SilentlyContinue | Select-Object -First 1).MacAddress
'IP Ethernet' = (Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias 'Ethernet' -ErrorAction SilentlyContinue | Where-Object { $_.IPAddress -notlike '169.254.*' } | Select-Object -First 1).IPAddress
'MAC Ethernet' = (Get-NetAdapter -Name 'Ethernet' -ErrorAction SilentlyContinue | Select-Object -First 1).MacAddress
Brand = (Get-WmiObject -Class Win32_ComputerSystem).Manufacturer
Model = (Get-WmiObject -Class Win32_ComputerSystem).Model
'Serial Number' = (Get-WmiObject -Class Win32_BIOS).SerialNumber
'Sistema Operativo' = (Get-WmiObject -Class Win32_OperatingSystem).Caption
'Memoria RAM (GB)' = [math]::Round((Get-WmiObject -Class Win32_ComputerSystem).TotalPhysicalMemory / 1GB, 2)
'Disco Duro (GB)' = [math]::Round((Get-WmiObject -Class Win32_LogicalDisk -Filter "DeviceID='C:'").Size / 1GB, 2)
'Tipo de Disco' = if ((Get-WmiObject -Class Win32_DiskDrive).Model -match 'SSD') { 'SSD' } else { 'HDD' }
Procesador = (Get-WmiObject -Class Win32_Processor).Name
'Velocidad del Procesador (GHz)' = [math]::Round((Get-WmiObject -Class Win32_Processor).MaxClockSpeed / 1000, 2)
'BitLocker Activo' = if ((Get-BitLockerVolume -MountPoint 'C:').VolumeStatus -eq 'FullyEncrypted') { 'Sí' } else { 'No' }
'Office Instalado' = if (Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE (Name LIKE '%Office%')") { 'Sí' } else { 'No' }
}
# Convertir a CSV y guardar
$csvPath = "\\server\share\Inventario\Inventory_$($info.DateTime).csv"
$info | Export-Csv -Path $csvPath -NoTypeInformation
Paso 2: Configurar la Ejecución Automática 📅
Para que el script se ejecute automáticamente cada vez que un usuario inicie sesión en el dominio, sigue estos pasos:
Crear un Archivo
.bat
:Crea un archivo
.bat
para ejecutar el script PowerShell. Aquí tienes un ejemplo:@echo off
powershell.exe -ExecutionPolicy Bypass -File "C:\Users\Administrador\Documents\info_collector.ps1"Configurar una Política de Grupo:
- Abre la Consola de Administración de Políticas de Grupo (GPMC) en el controlador de dominio.
- Crea o edita una Política de Grupo para agregar el archivo
.bat
en Configuración del Usuario > Políticas > Configuración de Windows > Scripts (Inicio de sesión/Apagado).
Paso 3: Monitorear y Analizar 🚀
Una vez que el script esté en funcionamiento, podrás encontrar los archivos CSV generados en la carpeta compartida que especificaste. Estos archivos contendrán un registro detallado de cada equipo, facilitando la administración y el monitoreo de tu red.
Conclusión 🌟
Con este enfoque automatizado, la recopilación de información crítica sobre los equipos en tu red se convierte en una tarea sencilla y eficiente. ¡Di adiós al inventario manual y dale la bienvenida a una administración de sistemas más inteligente y rápida!
No hay comentarios:
Publicar un comentario