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).
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.
- CMD como administrador: pulsa Inicio, escribe
cmd, clic derecho > "Ejecutar como administrador". - PowerShell como administrador: pulsa Inicio, escribe
powershell, clic derecho > "Ejecutar como administrador".
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) |
$_.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:
$inf = "$env:USERPROFILE\Documents\inventario_equipo.txt"systeminfo | Out-File $inf"=== DISCO ===" | Add-Content $infGet-PhysicalDisk | Select-Object FriendlyName, MediaType, BusType, @{n='GB';e={[math]::Round($_.Size/1GB,2)}} | Format-Table | Out-String | Add-Content $inf"=== RAM ===" | Add-Content $infGet-CimInstance Win32_PhysicalMemory | Select-Object @{n='GB';e={$_.Capacity/1GB}}, Speed, Manufacturer | Format-Table | Out-String | Add-Content $inf- 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
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) |
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
Parte 3 - Diagnostico de problemas de red (40 min)
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 |
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
Parte 4 - Verificacion y reparacion del sistema (30 min)
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 |
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 |
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
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
- Abre el Bloc de notas (notepad).
- 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"
- Guarda como
diagnostico_equipo.ps1en el Escritorio.
Importante: en "Tipo" selecciona "Todos los archivos (*.*)" para que no se guarde como .txt - Abre PowerShell como administrador.
- Permite ejecutar el script en esta sesion:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypassy responde S. - Ejecuta el script:
cd $env:USERPROFILE\Desktopy luego.\diagnostico_equipo.ps1 - Abre el archivo de informe generado en Documentos y revisalo.
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
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):
- 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 - 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 |
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
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
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 |
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 |