← TeorĂ­a

Practica 10: Diagnostico de Equipos con la Consola de Windows

Modulo: MF0219_2 - Instalacion y Configuracion de Sistemas Operativos
Unidad Formativa: UF0853 - Explotacion de las funcionalidades del sistema microinformatico
Bloque: Diagnostico y reparacion de equipos desde la linea de comandos
Duracion estimada: 5 horas (1 sesion)
Modalidad: Trabajo individual
Herramientas: Oracle VirtualBox + VM con Windows 10 instalado (Practica 06)
Nota: Esta practica requiere tener completada la Practica 08 (Explorando Windows 10). Trabajaras sobre la misma maquina virtual. Todos los comandos se ejecutan en CMD o PowerShell segun se indique.
Escenario: Trabajas como tecnico en un taller de reparacion de equipos informaticos. Un cliente trae su PC con varios problemas: va lento, tiene fallos de red y no sabe que hardware tiene. Tu mision es diagnosticar el equipo usando la consola, generar un informe de hardware y verificar que todo funciona correctamente, sin necesidad de abrir la torre.

Objetivos de la practica

  • Obtener un inventario completo del hardware de un equipo desde la consola (CPU, RAM, disco, placa base, BIOS).
  • Utilizar la redireccion y los pipes para generar informes de diagnostico.
  • Diagnosticar problemas de conectividad de red con ping, tracert, netstat y nslookup.
  • Consultar drivers instalados y detectar dispositivos con problemas.
  • Verificar la integridad del sistema con herramientas de reparacion (sfc, DISM, chkdsk).
  • Crear un script batch de diagnostico automatizado para usar en el taller.
  • Utilizar PowerShell para obtener informacion detallada del hardware via WMI.

Requisitos previos

Requisito OK
Practica 08 (Explorando Windows 10) completada
Maquina virtual con Windows 10 funcionando correctamente
Acceso de administrador en la maquina virtual

Parte 1 - Inventario de hardware desde la consola (40 min)

Lo primero que hace un tecnico cuando recibe un equipo es identificar su hardware sin abrirlo. Windows permite obtener toda esta informacion desde la linea de comandos con systeminfo y PowerShell (cmdlet Get-CimInstance).

Importante: El antiguo comando wmic esta obsoleto desde Windows 10 21H1 y ha sido eliminado por completo en Windows 11 24H2. Microsoft recomienda usar PowerShell con Get-CimInstance, que ofrece la misma informacion de WMI con sintaxis moderna. En esta practica usaremos PowerShell para el inventario de hardware y CMD para el resto de tareas.
Como abrir las dos consolas:
  • CMD como administrador: pulsa Inicio, escribe cmd, clic derecho > "Ejecutar como administrador".
  • PowerShell como administrador: pulsa Inicio, escribe powershell, clic derecho > "Ejecutar como administrador".
Para esta Parte 1 usa PowerShell. Para las Partes 3, 4 y 5 usa CMD.

Informacion general del sistema

Comando Que identifica Resultado en tu VM
systeminfo | findstr /i "nombre fabricante modelo" Fabricante y modelo del equipo
Get-CimInstance Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion, SerialNumber BIOS: fabricante, version, numero de serie
Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber Placa base: fabricante y modelo

Procesador (CPU)

Comando (PowerShell) Resultado
Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed
Get-CimInstance Win32_Processor | Select-Object CurrentClockSpeed, LoadPercentage

Memoria RAM

Comando Resultado
Get-CimInstance Win32_PhysicalMemory | Select-Object @{n='CapacidadGB';e={$_.Capacity/1GB}}, Speed, Manufacturer, PartNumber
systeminfo | findstr /i "memoria" (CMD)
Nota: En el comando de PowerShell, $_.Capacity/1GB convierte automaticamente los bytes a gigabytes. Si lo prefieres en bruto (bytes), usa simplemente Capacity.

Disco duro / SSD

Comando Resultado
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, BusType, @{n='TamanoGB';e={[math]::Round($_.Size/1GB,2)}}
Get-Volume | Select-Object DriveLetter, FileSystemLabel, FileSystem, @{n='TotalGB';e={[math]::Round($_.Size/1GB,2)}}, @{n='LibreGB';e={[math]::Round($_.SizeRemaining/1GB,2)}}

Ficha tecnica del equipo

Con los datos obtenidos, completa esta ficha tecnica como harias en un taller de reparacion:

Componente Datos del equipo
Fabricante / Modelo del equipo
Numero de serie
BIOS (version)
Placa base
CPU (modelo, nucleos, velocidad)
RAM (cantidad, velocidad)
Disco (modelo, tamano, tipo)
Sistema operativo

Guardar inventario en un archivo

Un buen tecnico genera un informe por escrito. Ejecuta estos comandos en PowerShell para crear un informe de inventario:

  1. $inf = "$env:USERPROFILE\Documents\inventario_equipo.txt"
  2. systeminfo | Out-File $inf
  3. "=== DISCO ===" | Add-Content $inf
  4. Get-PhysicalDisk | Select-Object FriendlyName, MediaType, BusType, @{n='GB';e={[math]::Round($_.Size/1GB,2)}} | Format-Table | Out-String | Add-Content $inf
  5. "=== RAM ===" | Add-Content $inf
  6. Get-CimInstance Win32_PhysicalMemory | Select-Object @{n='GB';e={$_.Capacity/1GB}}, Speed, Manufacturer | Format-Table | Out-String | Add-Content $inf
  7. Comprueba el archivo: Get-Content $inf | more

Se creo el archivo? Que tamano tiene (usa Get-Item $inf | Select-Object Length)?

Captura 1: PowerShell mostrando comandos de inventario de hardware

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Captura de PowerShell con Get-CimInstance / Get-PhysicalDisk

Preview

Parte 2 - Drivers y dispositivos instalados (30 min)

Cuando un equipo tiene problemas de hardware (sin sonido, sin red, pantalla con mala resolucion), la causa suele ser un driver incorrecto o ausente. Desde CMD podemos consultar todos los drivers instalados y detectar problemas.

Listar drivers instalados

Comando Que muestra Resultado
driverquery Lista todos los drivers
driverquery | findstr /i "running" Solo drivers activos
driverquery /FO CSV /V > %USERPROFILE%\Documents\drivers_completo.csv Exporta drivers a CSV (para Excel)

Dispositivos del sistema

Comando Resultado
Get-CimInstance Win32_PnPEntity | Where-Object Status -ne 'OK' | Select-Object Name, Status (PowerShell)
Get-CimInstance Win32_VideoController | Select-Object Name, DriverVersion, Status (PowerShell)
Get-CimInstance Win32_SoundDevice | Select-Object Name, Status (PowerShell)
Get-NetAdapter | Where-Object Status -eq 'Up' | Select-Object Name, LinkSpeed, MacAddress (PowerShell)
En un taller real: Si Win32_PnPEntity muestra dispositivos con estado "Error" o "Degraded", indica que el driver no funciona correctamente. La solucion seria reinstalar el driver del fabricante o actualizar via Windows Update.

Captura 2: CMD mostrando drivers y dispositivos del sistema

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Captura de CMD con informacion de drivers y dispositivos

Preview

Parte 3 - Diagnostico de problemas de red (40 min)

Escenario: El cliente dice que "Internet no le funciona". Antes de tocar cables o el router, vamos a diagnosticar el problema paso a paso desde la consola, siguiendo un procedimiento sistematico de descarte.

Paso 1: Comprobar la configuracion de red

Comando Que verificamos Resultado
ipconfig /all Configuracion completa de red

Extrae estos datos de la salida anterior:

Dato Valor Es correcto?
Direccion IPv4
Mascara de subred
Puerta de enlace (gateway)
Servidor DNS
DHCP habilitado?

Paso 2: Probar conectividad por capas

Seguimos el modelo de diagnostico de red: primero lo mas cercano, despues lo mas lejano:

Comando Que probamos Resultado
ping 127.0.0.1 Pila TCP/IP local
ping [tu puerta de enlace] Conexion al router
ping 8.8.8.8 Conexion a Internet (sin DNS)
ping www.google.es Conexion a Internet + resolucion DNS
Logica de descarte: Si el ping a 127.0.0.1 falla, el problema es de la pila TCP/IP. Si falla al router, es un problema de cable/WiFi o configuracion IP. Si falla a 8.8.8.8 pero no al router, el problema esta en el router o el ISP. Si falla a google.es pero no a 8.8.8.8, el problema es de DNS.

Paso 3: Trazar la ruta y consultar DNS

Comando Resultado
tracert 8.8.8.8
nslookup www.google.es
nslookup www.google.es 8.8.8.8

Paso 4: Puertos y conexiones activas

Comando Resultado
netstat -an | findstr "ESTABLISHED"
netstat -an | findstr "LISTENING" | findstr "445 3389 80 135"

Paso 5: Reparacion de red (si hay problemas)

Si se detectan problemas, estos son los comandos de reparacion de red:

Comando de reparacion Que hace Resultado
ipconfig /release Libera la IP actual
ipconfig /renew Solicita nueva IP al DHCP
ipconfig /flushdns Limpia la cache DNS
netsh winsock reset Reinicia la configuracion de red

Captura 3: Diagnostico de red completo (ping, tracert o netstat)

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Captura de CMD con el diagnostico de red

Preview

Parte 4 - Verificacion y reparacion del sistema (30 min)

Escenario: El cliente se queja de que Windows "va lento y da errores raros". Vamos a usar las herramientas de verificacion y reparacion integradas en Windows para comprobar la integridad del sistema y del disco.

sfc - Comprobador de archivos del sistema

sfc (System File Checker) analiza todos los archivos protegidos del sistema y repara los danados:

Comando Resultado
sfc /scannow
En un taller real: Si sfc encuentra archivos danados y no puede repararlos, el siguiente paso es ejecutar DISM para reparar la imagen del sistema y despues volver a ejecutar sfc.

DISM - Reparacion de la imagen del sistema

Comando Resultado
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth

chkdsk - Verificacion del disco

Comando Que hace Resultado
chkdsk C: Analiza el disco C: (solo lectura)
Get-PhysicalDisk | Select-Object FriendlyName, HealthStatus, OperationalStatus (PowerShell) Estado S.M.A.R.T. del disco
Importante: chkdsk C: /F (con reparacion) requiere reiniciar el equipo porque la unidad esta en uso. En un taller, se programaria para el siguiente reinicio. No ejecutes /F en esta practica salvo que el profesor lo indique.

Servicios criticos de hardware

Verifica que los servicios relacionados con el hardware estan funcionando:

Servicio Comando Estado
Plug and Play sc query PlugPlay
Audio de Windows sc query Audiosrv
Cola de impresion sc query Spooler
Windows Update sc query wuauserv
Configuracion automatica WLAN sc query WlanSvc

Captura 4: Herramientas de verificacion (sfc, DISM o chkdsk)

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Captura de CMD con sfc /scannow, DISM o chkdsk

Preview

Parte 5 - Script de diagnostico para el taller (.ps1) (40 min)

En un taller de reparacion, tener un script automatizado que recoja toda la informacion del equipo ahorra mucho tiempo. Vamos a crear un script de PowerShell que genere un informe completo. Usamos PowerShell porque wmic esta obsoleto y eliminado en Windows 11 24H2.

Script: Diagnostico completo del equipo

  1. Abre el Bloc de notas (notepad).
  2. Escribe el siguiente codigo exactamente:
# Diagnostico de Equipo - Taller de Reparacion IFCT0309
$Host.UI.RawUI.WindowTitle = "Diagnostico de Equipo - Taller"

$informe = "$env:USERPROFILE\Documents\diagnostico_$env:COMPUTERNAME.txt"

Write-Host "============================================" -ForegroundColor Green
Write-Host "   HERRAMIENTA DE DIAGNOSTICO DE EQUIPOS" -ForegroundColor Green
Write-Host "   Taller de Reparacion - IFCT0309" -ForegroundColor Green
Write-Host "============================================" -ForegroundColor Green
Write-Host ""
Write-Host "Generando informe en: $informe"
Write-Host "Esto puede tardar unos minutos..."
Write-Host ""

# Cabecera del informe
@"
============================================
 INFORME DE DIAGNOSTICO - $env:COMPUTERNAME
 Fecha: $(Get-Date)
 Tecnico: $env:USERNAME
============================================
"@ | Out-File $informe

function Add-Seccion($titulo, $datos) {
    "" | Add-Content $informe
    "=== $titulo ===" | Add-Content $informe
    $datos | Format-Table -AutoSize | Out-String | Add-Content $informe
}

# 1. Placa base y BIOS
Add-Seccion "1. PLACA BASE Y BIOS" (Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber)
Get-CimInstance Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion |
    Format-Table -AutoSize | Out-String | Add-Content $informe

# 2. Procesador
Add-Seccion "2. PROCESADOR" (Get-CimInstance Win32_Processor |
    Select-Object Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed)
Write-Host "[OK] CPU identificada"

# 3. Memoria RAM
Add-Seccion "3. MEMORIA RAM" (Get-CimInstance Win32_PhysicalMemory |
    Select-Object @{n='GB';e={$_.Capacity/1GB}}, Speed, Manufacturer, PartNumber)
Write-Host "[OK] RAM documentada"

# 4. Discos
Add-Seccion "4. DISCOS FISICOS" (Get-PhysicalDisk |
    Select-Object FriendlyName, MediaType, BusType,
        @{n='GB';e={[math]::Round($_.Size/1GB,2)}}, HealthStatus)
Add-Seccion "   VOLUMENES" (Get-Volume | Where-Object DriveLetter |
    Select-Object DriveLetter, FileSystemLabel, FileSystem,
        @{n='TotalGB';e={[math]::Round($_.Size/1GB,2)}},
        @{n='LibreGB';e={[math]::Round($_.SizeRemaining/1GB,2)}})
Write-Host "[OK] Disco analizado"

# 5. Tarjeta grafica
Add-Seccion "5. TARJETA GRAFICA" (Get-CimInstance Win32_VideoController |
    Select-Object Name, DriverVersion, Status)

# 6. Tarjeta de red
Add-Seccion "6. TARJETAS DE RED" (Get-NetAdapter | Where-Object Status -eq 'Up' |
    Select-Object Name, LinkSpeed, MacAddress)
Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -ne '127.0.0.1' } |
    Select-Object InterfaceAlias, IPAddress, PrefixLength |
    Format-Table -AutoSize | Out-String | Add-Content $informe
Write-Host "[OK] Red documentada"

# 7. Sistema operativo
Add-Seccion "7. SISTEMA OPERATIVO" (Get-CimInstance Win32_OperatingSystem |
    Select-Object Caption, Version, OSArchitecture, BuildNumber)

# 8. Estado SMART
Add-Seccion "8. ESTADO S.M.A.R.T. DEL DISCO" (Get-PhysicalDisk |
    Select-Object FriendlyName, HealthStatus, OperationalStatus)

@"

============================================
 FIN DEL INFORME
============================================
"@ | Add-Content $informe

Write-Host ""
Write-Host "============================================" -ForegroundColor Green
Write-Host "   DIAGNOSTICO COMPLETADO" -ForegroundColor Green
Write-Host "============================================" -ForegroundColor Green
Write-Host ""
Write-Host "El informe se ha guardado en:"
Write-Host $informe
Write-Host ""
Read-Host "Pulsa Enter para salir"
  1. Guarda como diagnostico_equipo.ps1 en el Escritorio.
    Importante: en "Tipo" selecciona "Todos los archivos (*.*)" para que no se guarde como .txt
  2. Abre PowerShell como administrador.
  3. Permite ejecutar el script en esta sesion: Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass y responde S.
  4. Ejecuta el script: cd $env:USERPROFILE\Desktop y luego .\diagnostico_equipo.ps1
  5. Abre el archivo de informe generado en Documentos y revisalo.
Por que Set-ExecutionPolicy ... Bypass? Por seguridad, PowerShell bloquea por defecto los scripts .ps1 sin firmar. -Scope Process aplica el cambio solo a la ventana actual (no afecta al sistema). Al cerrar PowerShell, vuelve la politica restrictiva.

Pega aqui las primeras 30 lineas del informe generado (diagnostico_XXXX.txt):

Que mejoras le harias a este script para usarlo en un taller real? (piensa en que informacion adicional seria util)

Captura 5: Script de diagnostico ejecutandose

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Captura del script de diagnostico ejecutandose

Preview

Parte 6 - PowerShell: diagnostico avanzado de hardware (40 min)

PowerShell permite acceder a informacion de hardware mucho mas detallada que CMD, gracias a WMI (Windows Management Instrumentation) y CIM. Abre PowerShell como administrador.

Inventario detallado con PowerShell

Comando PowerShell Resultado
Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors, MaxClockSpeed
Get-CimInstance Win32_PhysicalMemory | Select-Object Manufacturer, Capacity, Speed, MemoryType | Format-Table
Get-CimInstance Win32_DiskDrive | Select-Object Model, Size, InterfaceType, MediaType, Status
Get-CimInstance Win32_BIOS | Select-Object Manufacturer, SMBIOSBIOSVersion, ReleaseDate
Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber

Diagnostico de rendimiento

Comando Resultado
Get-CimInstance Win32_OperatingSystem | Select-Object @{N='RAM_Total_GB';E={[math]::Round($_.TotalVisibleMemorySize/1MB,2)}}, @{N='RAM_Libre_GB';E={[math]::Round($_.FreePhysicalMemory/1MB,2)}}
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, @{N='Total_GB';E={[math]::Round($_.Size/1GB,2)}}, @{N='Libre_GB';E={[math]::Round($_.FreeSpace/1GB,2)}}, @{N='Uso_%';E={[math]::Round(($_.Size-$_.FreeSpace)/$_.Size*100,1)}}
Get-Process | Sort-Object WorkingSet64 -Descending | Select-Object -First 5 Name, @{N='RAM_MB';E={[math]::Round($_.WorkingSet64/1MB,1)}}

Exportar informe de hardware a CSV

Genera un CSV con el inventario de hardware que se pueda abrir en Excel (util para el registro del taller):

  1. Exporta los dispositivos Plug and Play:
    Get-CimInstance Win32_PnPEntity | Where-Object {$_.Status -ne 'OK'} | Select-Object Name, Status, DeviceID | Export-Csv -Path "$env:USERPROFILE\Documents\dispositivos_con_problemas.csv" -NoTypeInformation -Encoding UTF8
  2. Comprueba si hay dispositivos con problemas:
    $problemas = Import-Csv "$env:USERPROFILE\Documents\dispositivos_con_problemas.csv"; Write-Host "Dispositivos con problemas: $($problemas.Count)"
Dato Resultado
Numero de dispositivos con problemas
Si hay problemas, nombres de los dispositivos

Consultar el registro de eventos (errores de hardware)

Comando Resultado
Get-EventLog -LogName System -EntryType Error -Newest 5 | Select-Object TimeGenerated, Source, Message | Format-List
En un taller real: Los errores del registro de eventos del sistema (Event Viewer) son clave para diagnosticar problemas intermitentes como pantallazos azules (BSOD), cuelgues o reinicios inesperados. Busca eventos con fuente Disk, Ntfs, Whea o Kernel-Power.

Captura 6: PowerShell con diagnostico avanzado de hardware

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Captura de PowerShell con comandos de diagnostico hardware

Preview

Parte 7 - Preguntas de reflexion

Responde a cada pregunta con un minimo de 3 lineas. Las respuestas deben reflejar tu experiencia personal durante la practica.

1. Un cliente trae un PC que "no enciende la pantalla". Tu lo enciendes y ves que arranca pero con mala resolucion (640x480). Sin abrir la torre, que comandos usarias para diagnosticar si el problema es del driver de la tarjeta grafica? Describe el proceso.

2. En que situaciones de un taller de reparacion usarias sfc /scannow y DISM? Describe un caso concreto en el que estas herramientas solucionarian el problema de un cliente.

3. Un cliente dice que "Internet le va muy lento". Describe paso a paso el procedimiento de diagnostico que seguirias usando los comandos de red que has aprendido (ping, tracert, nslookup, netstat). En que punto del diagnostico podrias determinar si el problema es del equipo, del router o del proveedor de Internet?

4. Que ventajas tiene tener un script batch de diagnostico automatizado en el taller frente a ejecutar los comandos uno a uno? Que informacion adicional incluirias en el script que hemos creado?

Entrega de la practica

Sube tu practica completada al canal #entrega-practicas del Discord del curso en formato PDF.

Capturas requeridas

# Descripcion OK
1 PowerShell con inventario de hardware (Get-CimInstance / Get-PhysicalDisk)
2 CMD con drivers y dispositivos
3 Diagnostico de red (ping, tracert, netstat)
4 Verificacion del sistema (sfc, DISM o chkdsk)
5 Script de diagnostico ejecutandose
6 PowerShell con diagnostico avanzado

Formato del mensaje en Discord

Nombre: [Tu nombre y apellidos]
Practica: Diagnostico de Equipos con la Consola de Windows
[Adjuntar documento PDF y capturas de pantalla]

Criterios de evaluacion

Criterio Puntuacion Desglose
Inventario de hardware 2.0 puntos Comandos Get-CimInstance ejecutados + ficha tecnica completa + informe guardado
Drivers y dispositivos 1.0 punto Drivers listados + dispositivos con problemas buscados + CSV exportado
Diagnostico de red 2.0 puntos Procedimiento sistematico completo + datos de red documentados + reparacion
Verificacion y reparacion 1.5 puntos sfc + DISM + chkdsk ejecutados + servicios verificados
Script batch de diagnostico 1.5 puntos Script creado y ejecutado + informe generado + mejoras propuestas
PowerShell avanzado 1.0 punto Inventario CIM + diagnostico rendimiento + eventos del sistema
Preguntas de reflexion 1.0 punto 4 preguntas respondidas con argumentacion (min 3 lineas)
Total 10 puntos

Penalizaciones

Motivo Penalizacion
Entrega fuera de plazo (sin justificacion) -2 puntos
Capturas insuficientes (menos de 3) -1 punto
Respuestas copiadas de Internet o de otro companero -3 puntos
Respuestas de una sola linea en preguntas que piden minimo 3 lineas -0.5 puntos por pregunta
Fecha limite: Indicada por el profesor en el canal de Discord.

Lista de verificacion de entrega (firma del alumno)

Antes de subir tu practica, confirma que has incluido todo:

Dato Tu respuesta
Nombre del alumno
Firma
Fecha de entrega

Entrega esta practica en el canal #entrega-practicas del Discord del curso.

Formato: Nombre: [tu nombre] | Practica: Diagnostico de Equipos con la Consola de Windows

Practica correspondiente al Bloque Diagnostico y reparacion de equipos