Cómo consultar los números de serie HWID con CMD y PowerShell: todas las ID de hardware de Windows
Consulta los números de serie HWID con CMD y PowerShell: UUID de SMBIOS, placa base, BIOS, discos, RAM, ProcessorId de CPU, MAC y MachineGuid, con ejemplos y qué cambia cada valor.
HWID Checker · 4 de septiembre de 2026 · 22 min de lectura
No existe un único comando que muestre «tu HWID». Eso es lo primero que debes entender antes de abrir una ventana negra y empezar a escribir. Windows no almacena una sola ID de hardware. Expone una docena de identificadores independientes: un UUID del firmware, un número de serie de la placa base, un número de serie del BIOS, uno por cada disco, uno por cada módulo de memoria, una firma de la CPU, una dirección MAC por adaptador de red y varios GUID generados por software. Cada programa que habla de «tu HWID» selecciona un subconjunto de esos valores y los combina a su manera.
Por tanto, cuando alguien busca cómo consultar los números de serie HWID en CMD, lo que necesita en realidad es una lista que indique qué números de serie existen, qué comando lee cada uno, cómo es la salida y qué hace que cambie cada valor. Eso es precisamente esta guía. Abarca tanto el Símbolo del sistema clásico (cmd.exe) como PowerShell, porque en las versiones actuales de Windows necesitas ambos: varios comandos antiguos de CMD dependían de wmic, que Microsoft ha eliminado de las instalaciones predeterminadas de Windows 11, y los sustitutos compatibles son cmdlets de PowerShell.
Todo lo descrito aquí es de solo lectura. Los comandos consultan valores que Windows y el firmware ya exponen; nada de lo que aparece a continuación modifica, aleatoriza ni suplanta ningún identificador. Los comandos se comprobaron con la documentación de Microsoft para Windows 10 22H2 y Windows 11 24H2/25H2 a fecha del 4 de septiembre de 2026.
Respuesta rápida: la tabla completa
Si solo quieres los comandos, aquí los tienes. Cada fila corresponde a un identificador. La columna «CMD antiguo» muestra la sintaxis anterior de wmic como referencia, ya que todavía aparecerá en publicaciones de foros; la columna de PowerShell es la que debes utilizar actualmente.
| Identificador | Dónde se almacena | PowerShell (recomendado) | CMD antiguo (puede no existir en Windows 11) |
|---|---|---|---|
| UUID del sistema SMBIOS | Firmware de la placa base | (Get-CimInstance Win32_ComputerSystemProduct).UUID | wmic csproduct get uuid |
| Número de serie del sistema | Firmware (OEM) | (Get-CimInstance Win32_ComputerSystemProduct).IdentifyingNumber | wmic csproduct get identifyingnumber |
| Número de serie del BIOS | Firmware | (Get-CimInstance Win32_BIOS).SerialNumber | wmic bios get serialnumber |
| Número de serie de la placa base | Tabla de firmware de la placa base | (Get-CimInstance Win32_BaseBoard).SerialNumber | wmic baseboard get serialnumber |
| Número de serie del chasis | Tabla de firmware del chasis | (Get-CimInstance Win32_SystemEnclosure).SerialNumber | wmic systemenclosure get serialnumber |
| Números de serie de discos físicos | Firmware de la unidad | Get-PhysicalDisk | Select-Object FriendlyName, SerialNumber | wmic diskdrive get model,serialnumber |
| Número de serie del volumen (no es hardware) | Cabecera del sistema de archivos | (Get-CimInstance Win32_LogicalDisk -Filter "DeviceID='C:'").VolumeSerialNumber | vol C: |
| Números de serie de módulos RAM | Chip SPD del DIMM | Get-CimInstance Win32_PhysicalMemory | Select-Object DeviceLocator, SerialNumber | wmic memorychip get devicelocator,serialnumber |
| ProcessorId de CPU | Instrucción CPUID | (Get-CimInstance Win32_Processor).ProcessorId | wmic cpu get processorid |
| Direcciones MAC | Firmware/controlador del adaptador de red | Get-NetAdapter | Select-Object Name, MacAddress, Status | getmac /v |
| Número de serie del monitor (EDID) | Firmware de la pantalla | consulta la sección sobre monitores | ninguno |
| MachineGuid | Registro, se establece al instalar Windows | (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Cryptography').MachineGuid | reg query HKLM\SOFTWARE\Microsoft\Cryptography /v MachineGuid |
| ID de producto de Windows | Registro/licencias | (Get-CimInstance Win32_OperatingSystem).SerialNumber | wmic os get serialnumber |
| ComputerHardwareIds | Registro, derivados de SMBIOS | (Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\SystemInformation').ComputerHardwareIds | reg query "HKLM\SYSTEM\CurrentControlSet\Control\SystemInformation" /v ComputerHardwareIds |
El resto del artículo recorre cada fila: qué es el valor, cómo son un resultado normal y uno defectuoso y qué acciones lo cambian. Si solo lees una sección, elige la que explica cuáles de estos valores acaban realmente dentro de una «HWID».
¿CMD o PowerShell? Por qué la misma ventana negra utiliza dos lenguajes
Tanto cmd.exe como PowerShell son consolas de texto y, en Windows 11, ambas suelen abrirse dentro de la misma aplicación Terminal de Windows. Por eso es fácil suponer que los comandos son intercambiables. No lo son.
cmd.exeejecuta comandos al estilo de los archivos por lotes:dir,reg,vol,getmac,systeminfoy, antiguamente,wmic. No dispone de una canalización de objetos; la salida es texto sin formato.- PowerShell (Windows incluye Windows PowerShell 5.1; PowerShell 7 se instala por separado) ejecuta cmdlets como
Get-CimInstanceyGet-PhysicalDisk. La salida son objetos que puedes filtrar conSelect-Object.
Esta diferencia es importante al consultar HWID debido a wmic.exe. Casi todos los tutoriales anteriores a 2024 sobre «consultar tu HWID en CMD» utilizan wmic csproduct get uuid, wmic bios get serialnumber y comandos similares. WMIC quedó obsoleto en 2016, pasó a ser una «característica a petición» opcional deshabilitada de forma predeterminada en Windows 11 24H2 y se está eliminando por completo. En un equipo con una instalación nueva de Windows 11 normalmente verás:
'wmic' is not recognized as an internal or external command,
operable program or batch file.
Las clases WMI subyacentes (Win32_BIOS, Win32_BaseBoard, etc.) siguen ahí. Solo ha desaparecido el antiguo cliente de línea de comandos. Por eso todos los comandos de PowerShell de este artículo emplean Get-CimInstance: lee las mismas clases mediante la interfaz CIM compatible. Si un script existente te obliga a seguir usando wmic, la guía de solución de problemas de WMIC explica detalladamente la migración.
No necesitas salir de CMD para usar comandos de PowerShell. Puedes ejecutar cualquier comando de PowerShell de una sola línea de este artículo desde el Símbolo del sistema o un archivo .bat envolviéndolo así:
powershell -NoProfile -Command "(Get-CimInstance Win32_BaseBoard).SerialNumber"
Así es exactamente como funciona nuestro script BAT descargable: un archivo por lotes de texto sin formato que invoca PowerShell una vez por identificador, para que puedas leer todas las líneas antes de ejecutarlo.
¿Necesitas permisos de administrador? Para todo lo descrito en este artículo, no. La lectura de las tablas SMBIOS, los números de serie de los discos, los datos SPD de la memoria, CPUID y las claves del Registro implicadas funciona en una sesión de usuario estándar. Si un comando devuelve Access denied, casi seguro que lo estás ejecutando contra un equipo remoto o bajo una directiva corporativa restrictiva; no has encontrado una barrera de permisos habitual.
UUID del sistema SMBIOS
Qué es. Un identificador de 128 bits que el fabricante de la placa base almacena en la tabla de información del sistema SMBIOS (tipo 1). Es el valor al que se suele aludir cuando alguien dice «la HWID» sin más precisión, ya que reside en el firmware, sobrevive a las reinstalaciones del sistema operativo y es fácil de leer.
(Get-CimInstance Win32_ComputerSystemProduct).UUID
Salida típica:
4C4C4544-0034-5A10-8047-B8C04F4E3232
Cómo interpretarlo. En los equipos Dell, como en el ejemplo anterior, el UUID se deriva en parte de la etiqueta de servicio, por lo que dos Dell nunca compartirán uno. En muchas placas de consumo es un valor aleatorio escrito en fábrica. En cualquier caso, no es secreto —cualquiera con acceso local puede leerlo— ni está cifrado.
Resultados incorrectos y qué significan.
00000000-0000-0000-0000-000000000000oFFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF: el firmware no rellenó el campo. Es habitual en algunas placas económicas, en equipos donde se ha sustituido el chip del BIOS y en ciertas máquinas virtuales con una configuración SMBIOS mínima.03000200-0400-0500-0006-000700080009: un conocido marcador de posición predeterminado de un BIOS de referencia. No es único; miles de placas informan de este valor.- Vacío: normalmente se trata de una plataforma de virtualización que no expone ningún UUID.
Qué lo cambia. Sustituir la placa base. Volver a grabar el BIOS normalmente lo conserva, pero un restablecimiento completo de CMOS/NVRAM en algunas placas o la sustitución de la placa en un centro de servicio pueden generar uno nuevo. Reinstalar Windows no lo cambia. En una máquina virtual, lo establece el hipervisor; clonar la máquina virtual puede regenerarlo o no según la plataforma.
Dentro de esta misma clase, IdentifyingNumber es el número de serie OEM del sistema: la misma cadena impresa en la pegatina de la parte inferior de un portátil:
Get-CimInstance Win32_ComputerSystemProduct |
Select-Object Vendor, Name, IdentifyingNumber, UUID
Número de serie del BIOS
Qué es. El número de serie indicado por la tabla de información del sistema SMBIOS mediante la clase Win32_BIOS. En equipos premontados y portátiles casi siempre es idéntico al IdentifyingNumber anterior. En ordenadores de sobremesa montados por el usuario es lo que haya escrito el fabricante de la placa, que con frecuencia no es nada útil.
(Get-CimInstance Win32_BIOS).SerialNumber
Salidas típicas, desde la válida hasta la inútil:
5CG1234XYZ ← HP laptop, real serial
To Be Filled By O.E.M. ← common on ASRock/ASUS retail boards
Default string ← common on MSI/Gigabyte retail boards
System Serial Number ← another placeholder
Los tres últimos no son errores. Las placas base de venta al público están pensadas para que otra persona monte un equipo con ellas, de modo que su fabricante deja el número de serie del «sistema» para que lo rellene el integrador, algo que nadie hace. Cualquier software que dependa del número de serie del BIOS como clave única tratará todos esos equipos como si fueran el mismo ordenador. Esta es una causa real de falsos positivos de «hardware duplicado».
Qué lo cambia. Lo mismo que el UUID: sustituir la placa. Las actualizaciones del BIOS no lo alteran en circunstancias normales.
Número de serie de la placa base
Qué es. El número de serie de la tabla Baseboard de SMBIOS (tipo 2). A diferencia del número de serie del BIOS o del sistema, este sí suele estar rellenado en las placas de venta al público, porque identifica la propia placa y no el sistema montado.
Get-CimInstance Win32_BaseBoard |
Select-Object Manufacturer, Product, SerialNumber
Salida típica:
Manufacturer Product SerialNumber
------------ ------- ------------
ASUSTeK COMPUTER INC. ROG STRIX B650-A 230412345678901
Resultados incorrectos. To Be Filled By O.E.M., Default string, None o un número de serie compuesto íntegramente por ceros. Es menos común que con el número de serie del BIOS, pero ocurre, sobre todo en placas muy baratas y en algunos modelos de Gigabyte cuyo número de serie aparece como Default string hasta que se actualiza el firmware.
Qué lo cambia. Únicamente sustituir la placa. Por eso el número de serie de la placa base, junto con el UUID de SMBIOS, es el identificador al que más peso suelen asignar los sistemas antitrampas y de licencias.
Número de serie del chasis
Qué es. El número de serie de la tabla Chassis de SMBIOS (tipo 3). En portátiles y equipos de sobremesa OEM suele coincidir con el número de serie del sistema. En ordenadores montados por el usuario casi siempre es un marcador de posición, porque la caja no tiene firmware y el fabricante de la placa no sabe qué caja compraste.
(Get-CimInstance Win32_SystemEnclosure).SerialNumber
Puedes tratarlo sin problemas como un valor secundario. Se incluye porque algunas herramientas de HWID lo leen y no debería sorprenderte que muestre Default string.
Números de serie de discos físicos y por qué vol no muestra uno
Aquí se concentra la mayor confusión, porque Windows expone dos cosas completamente distintas a las que se suele llamar «número de serie del disco».
Número de serie del hardware (el que buscas)
Cada SSD y HDD tiene un número de serie asignado por el fabricante y almacenado en el firmware de la unidad. Está impreso en la etiqueta del disco y se comunica mediante comandos Identify de SATA o NVMe.
La forma más fiable de leerlo en las versiones actuales de Windows es el módulo Storage:
Get-PhysicalDisk | Select-Object DeviceId, FriendlyName, MediaType, SerialNumber
Salida típica:
DeviceId FriendlyName MediaType SerialNumber
-------- ------------ --------- ------------
0 Samsung SSD 990 PRO 2TB SSD S6Z2NJ0T123456A
1 WDC WD40EZAZ-00SF3B0 HDD WD-WX12D34ABCDE
La clase WMI clásica también funciona y es la que utilizaba el comando antiguo wmic diskdrive:
Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber
Peculiaridades que encontrarás.
- Espacios iniciales o finales. Algunos controladores rellenan el número de serie con espacios hasta alcanzar una anchura fija. Compara los valores con
.Trim()o detectarás diferencias falsas. - Hexadecimal con bytes intercambiados en sistemas antiguos. En Windows 7 y versiones anteriores,
Win32_PhysicalMediadevolvía el número de serie como hexadecimal con cada par de caracteres intercambiado. Las versiones actuales de Windows devuelven una cadena normal, pero esta es la razón por la que puede parecer desordenada si la comparas con un valor registrado hace años. - Vacío en unidades USB, RAID o ciertas NVMe. Las unidades situadas detrás de un controlador RAID informan sobre el disco virtual del controlador, no sobre la unidad física; las carcasas USB a veces ocultan el número de serie interno.
Get-PhysicalDisksuele funcionar mejor queWin32_DiskDriveen estos casos, pero ninguno de los dos puede ver a través de un RAID por hardware. - Máquinas virtuales. Los hipervisores asignan números de serie sintéticos que cambian si se vuelve a crear el disco virtual.
Qué lo cambia. Solo sustituir la unidad. Formatear, volver a crear las particiones, clonar en una unidad nueva —el clon tendrá el número de serie de la unidad nueva— y reinstalar Windows no lo alteran. Las actualizaciones de firmware tampoco.
Número de serie del volumen (normalmente no es el que buscas)
vol C:
Volume in drive C is Windows
Volume Serial Number is 8A3F-1C2B
Ese valor hexadecimal de ocho dígitos se escribe en la cabecera del sistema de archivos cuando se formatea el volumen. No está almacenado en el firmware de la unidad y no tiene nada que ver con el hardware. Al volver a formatear la partición se genera uno nuevo. Si clonas un disco sector por sector, el clon conserva el mismo número de serie de volumen que el original.
Algunos sistemas de licencias antiguos —de las décadas de 1990 y 2000— sí utilizaban el número de serie del volumen C: como clave. Por eso sigue apareciendo en debates sobre HWID. Los sistemas antitrampas y DRM modernos suelen ignorarlo precisamente porque es trivial cambiarlo. Si una herramienta muestra como «número de serie del disco» algo parecido a 8A3F-1C2B, está leyendo el número de serie del volumen, no el de la unidad.
El equivalente de PowerShell, si lo necesitas en un script, es:
(Get-CimInstance Win32_LogicalDisk -Filter "DeviceID='C:'").VolumeSerialNumber
Devuelve 8A3F1C2B sin el guion.
Números de serie de los módulos RAM
Qué es. Cada módulo de memoria tiene un chip SPD (Serial Presence Detect) que contiene su número de pieza, fabricante y, en la mayoría de los módulos, un número de serie. Windows expone esos datos mediante Win32_PhysicalMemory.
Get-CimInstance Win32_PhysicalMemory |
Select-Object DeviceLocator, Manufacturer, PartNumber, SerialNumber
Salida típica:
DeviceLocator Manufacturer PartNumber SerialNumber
------------- ------------ ---------- ------------
DIMM_A2 Corsair CMK32GX5M2B5600C36 00000000
DIMM_B2 Corsair CMK32GX5M2B5600C36 00000000
Fíjate en los números de serie. 00000000, un valor vacío o el mismo valor en todos los módulos son extremadamente habituales en la memoria de consumo. Algunos fabricantes no programan un número de serie; algunas placas no transmiten el campo del número de serie SPD a SMBIOS. Es mucho más probable que la memoria para servidores y estaciones de trabajo muestre números de serie reales y únicos.
Qué lo cambia. Añadir, retirar o intercambiar módulos. Cambiar los perfiles XMP/EXPO no lo altera. Ten en cuenta también que DeviceLocator —el nombre de la ranura— depende de la placa, por lo que mover los mismos módulos a otras ranuras cambia la asociación entre ranura y número de serie aunque los números de serie no varíen. Este detalle causa problemas a las implementaciones de HWID simplistas.
ProcessorId de CPU: el valor que no es un número de serie
Qué es. Un valor hexadecimal de 16 dígitos que Windows crea a partir de la instrucción CPUID: la firma del procesador —familia, modelo y revisión— y las marcas de características.
Get-CimInstance Win32_Processor | Select-Object Name, ProcessorId
Name ProcessorId
---- -----------
AMD Ryzen 7 7800X3D 8-Core Processor 178BFBFF00A60F12
Esta es la parte que casi todos los tutoriales sobre HWID explican mal: ProcessorId no es exclusivo de tu chip. Todos los Ryzen 7 7800X3D con la misma revisión y el mismo conjunto de características visible para el microcódigo devuelven el mismo 178BFBFF00A60F12. Intel eliminó de CPUID el número de serie individual del procesador (Processor Serial Number o PSN) después del Pentium III en 2000 debido a objeciones relacionadas con la privacidad, y AMD nunca incorporó uno. Lo que Windows muestra actualmente es un identificador de modelo, no un identificador de unidad.
Eso no significa que sea inútil. Es un componente estable de un hash compuesto —no cambiará salvo que sustituyas la CPU por un modelo distinto— y ayuda a distinguir la configuración general de un equipo. Simplemente no puede identificar por sí solo un ordenador entre todos los demás que tienen el mismo procesador.
Qué lo cambia. Sustituir la CPU por un modelo o una revisión diferentes. En teoría, una actualización de microcódigo que modifique las características indicadas puede alterar los bits inferiores, aunque en la práctica es poco frecuente.
Direcciones MAC
Qué es. Una dirección de 48 bits grabada en cada adaptador de red y mostrada como seis pares hexadecimales. Los adaptadores Ethernet por cable, Wi-Fi y Bluetooth tienen cada uno la suya.
El comando exclusivo de CMD sigue funcionando y conviene conocerlo:
getmac /v /fo list
PowerShell muestra el nombre y el estado del adaptador en una sola vista:
Get-NetAdapter | Select-Object Name, InterfaceDescription, MacAddress, Status
Name InterfaceDescription MacAddress Status
---- -------------------- ---------- ------
Ethernet Realtek Gaming 2.5GbE Family Controller 04-42-1A-9B-3C-7D Up
Wi-Fi Intel(R) Wi-Fi 6E AX211 160MHz A0-B1-C2-D3-E4-F5 Up
Peculiaridades importantes para una HWID.
- Adaptadores virtuales. Los clientes VPN, Hyper-V, VMware, WSL2 y Docker añaden adaptadores virtuales con sus propias direcciones MAC. Aparecen y desaparecen al instalar software, por lo que una HWID que incluya «todas las direcciones MAC» será inestable. Filtra únicamente los adaptadores físicos con
Get-NetAdapter -Physical. - Direcciones de hardware aleatorias. Windows 10 y 11 pueden aleatorizar la MAC Wi-Fi para cada red (Configuración → Red e Internet → Wi-Fi → Direcciones de hardware aleatorias). Cuando esta opción está activada, la MAC que ves en una red Wi-Fi difiere de la que aparece en otra. Este ajuste no afecta a los adaptadores por cable.
- Modificable por el administrador. La mayoría de los controladores permiten sustituir la MAC en Administrador de dispositivos → Opciones avanzadas → Network Address. Es una función legítima y documentada, no un truco, y constituye el motivo principal por el que una MAC aislada es un identificador poco fiable.
Qué lo cambia. Sustituir el adaptador, habilitar la aleatorización de Wi-Fi, establecer una sustitución en el controlador o añadir o quitar software de virtualización —para los adaptadores virtuales—.
Números de serie de monitores mediante EDID
La mayoría de las guías de HWID omiten este valor, pero algunos sistemas antitrampas sí lo leen, por lo que debe figurar en una lista completa. Cada monitor envía a la tarjeta gráfica un bloque EDID que lo describe. Dicho bloque incluye un código de fabricante y, por lo general, un número de serie.
Get-CimInstance -Namespace root\wmi -ClassName WmiMonitorID | ForEach-Object {
[PSCustomObject]@{
Manufacturer = -join [char[]]($_.ManufacturerName -ne 0)
Model = -join [char[]]($_.UserFriendlyName -ne 0)
Serial = -join [char[]]($_.SerialNumberID -ne 0)
}
}
Manufacturer Model Serial
------------ ----- ------
DEL DELL S2721DGF 9X2Y3Z4
Los campos son matrices de bytes rellenadas con ceros; por eso el fragmento los convierte en caracteres y descarta los ceros. Algunos monitores, sobre todo los más económicos, indican un número de serie 0 o un valor compartido por toda la tirada de producción.
Qué lo cambia. Sustituir el monitor. Cambiar el cable o el puerto no lo altera.
MachineGuid: la ID de software que sobrevive a los cambios de hardware
Qué es. Un GUID que Windows genera durante la instalación y almacena en HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuid. No es hardware. Es el «identificador de máquina» más utilizado en el software para Windows porque resulta trivial leerlo y permanece igual independientemente de los componentes que cambies.
CMD puro:
reg query HKLM\SOFTWARE\Microsoft\Cryptography /v MachineGuid
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography
MachineGuid REG_SZ 7e3a1b2c-4d5e-4f60-9a7b-8c9d0e1f2a3b
PowerShell:
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Cryptography').MachineGuid
Qué lo cambia. Reinstalar Windows —una instalación limpia, no una actualización en contexto ni un restablecimiento que conserve el subárbol del Registro—. Restaurar una imagen de disco en otro equipo lleva el mismo MachineGuid al hardware nuevo. Por eso las organizaciones que realizan despliegues desde imágenes a veces descubren cientos de máquinas «idénticas» en programas que utilizan únicamente este valor como clave.
Como cambia al reinstalar el sistema pero no al sustituir hardware, MachineGuid se comporta de forma opuesta a un UUID de firmware. Las implementaciones de HWID sólidas utilizan ambos para que ni una reinstalación ni un único cambio de componente produzcan por sí solos una máquina «nueva».
ID de producto de Windows
Qué es. La cadena con formato xxxxx-xxxxx-xxxxx-AAOEM que aparece en Configuración → Sistema → Acerca de. Identifica el canal de licencia y la instalación de Windows, no el hardware.
(Get-CimInstance Win32_OperatingSystem).SerialNumber
Se incluye porque wmic os get serialnumber aparece en numerosos archivos por lotes para «consultar tu HWID» y se confunde con un número de serie de hardware. No lo es, y cambia al reinstalar el sistema y, a veces, al cambiar de edición o reactivar Windows.
ComputerHardwareIds: la ID de hardware propia de Microsoft
Este valor rara vez se menciona fuera de los círculos dedicados al desarrollo de controladores y es lo más parecido que tiene Windows a una «HWID» oficial.
Windows Update utiliza un conjunto de GUID llamados Computer Hardware IDs para dirigir paquetes de firmware y controladores a sistemas concretos. Se calculan aplicando un hash a distintas combinaciones de campos SMBIOS —fabricante, nombre del producto, SKU, familia, proveedor y versión del BIOS e información de la placa base— y se almacenan en el Registro:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\SystemInformation" /v ComputerHardwareIds
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\SystemInformation').ComputerHardwareIds
{a8b1c2d3-e4f5-5a6b-9c8d-7e6f5a4b3c2d}
{b9c2d3e4-f5a6-5b7c-8d9e-6f5a4b3c2d1e}
{c0d3e4f5-a6b7-5c8d-9e0f-5a4b3c2d1e0f}
...
Son valores de modelo, no de unidad: dos portátiles idénticos con la misma versión del BIOS generan el mismo conjunto. Sin embargo, constituyen una comprobación útil cuando los demás valores parecen marcadores de posición, ya que derivan de las cadenas del firmware que también leería una herramienta de HWID. Si varios equipos comparten todos los ComputerHardwareId, casi con toda seguridad también comparten el problema del UUID de SMBIOS o de To Be Filled By O.E.M. descrito anteriormente.
El Windows Driver Kit incluye ComputerHardwareIds.exe, que muestra la misma lista junto con los campos SMBIOS exactos utilizados en cada hash. Resulta útil si quieres saber con precisión qué cadenas de firmware expone tu sistema.
¿Qué números de serie componen realmente una «HWID»?
Llegamos a la pregunta que hay detrás de ambas búsquedas. Has leído una docena de valores. ¿Cuál de ellos es la HWID?
Ninguno por separado. Una HWID tal y como la utilizan los sistemas antitrampas, los servidores de licencias y las herramientas de gestión de dispositivos es un hash de varios de los valores anteriores. Cada proveedor elige un conjunto y un método de hash diferentes. Por eso existe la guía de formatos de HWID y por eso no se puede comparar el valor de un programa con el de otro.
A partir de la documentación pública y de artículos de ingeniería inversa, sí podemos estimar aproximadamente qué peso recibe cada valor:
| Identificador | Peso habitual | Motivo |
|---|---|---|
| Número de serie de la placa base, UUID de SMBIOS | Alto | Sobreviven a la reinstalación del sistema operativo y solo cambian al sustituir la placa |
| Número de serie del disco físico (unidad del sistema) | Alto | Estable, único y fácil de leer |
| MachineGuid | Medio-alto | Detecta reinstalaciones, pero las imágenes clonadas lo comparten |
| ProcessorId de CPU | Medio | Estable, pero compartido por todos los chips del mismo modelo |
| Dirección MAC física | Bajo-medio | Fácil de sustituir; aleatorización en Wi-Fi |
| Números de serie de la RAM | Bajo | A menudo son cero o están duplicados en la memoria de consumo |
| Número de serie EDID del monitor | Bajo | Algunos sistemas antitrampas lo leen; los periféricos cambian a menudo |
| Número de serie del volumen | Muy bajo | Cambia en cada formateo |
| Número de serie del BIOS/chasis | Depende | Excelente en equipos OEM, marcador de posición en placas de venta al público |
Dos consecuencias prácticas:
- Cambiar un único componente rara vez modifica tu HWID desde el punto de vista de un sistema bien diseñado. La mayoría de las implementaciones tolera cierta cantidad de campos distintos antes de considerar que se trata de una máquina nueva. Sustituir una GPU —que, cabe señalar, no aparece en este artículo porque las GPU no exponen ningún número de serie mediante WMI— no suele cambiar nada.
- Reinstalar Windows cambia MachineGuid y el número de serie del volumen, pero no modifica nada que resida en el firmware. Si intentas averiguar por qué un bloqueo o una restricción de licencia persistieron después de reinstalar el sistema, esta es la respuesta: la placa base, el disco y el UUID no cambiaron. La guía sobre bloqueos de HWID explica qué significa esto en la práctica.
Leer todos los valores a la vez
Ejecutar catorce comandos a mano está bien una vez. Si quieres un único informe que puedas guardar o comparar más adelante, tienes tres opciones, todas de solo lectura.
Un bloque de PowerShell que puedes pegar. Muestra los valores con mayor peso sin ocultar los marcadores de posición, para que puedas ver lo que informa realmente el firmware:
$csp = Get-CimInstance Win32_ComputerSystemProduct
$bb = Get-CimInstance Win32_BaseBoard
[PSCustomObject]@{
SmbiosUuid = $csp.UUID
SystemSerial = $csp.IdentifyingNumber
BiosSerial = (Get-CimInstance Win32_BIOS).SerialNumber
BoardSerial = $bb.SerialNumber
BoardProduct = $bb.Product
DiskSerials = (Get-PhysicalDisk | ForEach-Object { $_.SerialNumber.Trim() }) -join ', '
CpuId = (Get-CimInstance Win32_Processor).ProcessorId
PhysicalMacs = (Get-NetAdapter -Physical | ForEach-Object MacAddress) -join ', '
MachineGuid = (Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Cryptography').MachineGuid
} | Format-List
El script BAT. Si prefieres inspeccionar un archivo antes de ejecutarlo, el archivo .bat descargable es un archivo por lotes de texto sin formato que realiza una consulta de PowerShell por identificador y se detiene al final. No utiliza wmic, no calcula ningún hash ni escribe nada en el disco.
El EXE. HWID Checker para Windows lee los mismos identificadores, además de los números de serie de la RAM y los volúmenes, los muestra y calcula también un SHA-256 a partir de los campos estables para que dispongas de una única cadena que comparar a lo largo del tiempo. Es una aplicación de consola portátil: haz doble clic, lee y pulsa Intro. Su hash es nuestro valor compuesto, no un valor que utilice ningún juego ni servidor de licencias. Es una herramienta para comprobar si tu propio equipo muestra los mismos datos que el mes pasado, no para predecir lo que calculará el software de otra empresa. El SHA-256 del propio ejecutable se publica en la página de descarga para que puedas verificar el archivo antes de abrirlo.
Preguntas frecuentes
¿Por qué obtengo un resultado distinto al de la herramienta «HWID checker» de un amigo? Porque no existe ningún estándar. Su herramienta aplicó un hash a un conjunto de campos diferente. Compara los valores sin procesar de este artículo en lugar de los hashes.
Los números de serie de mi placa base y mi BIOS dicen To Be Filled By O.E.M.. ¿Hay algún problema?
No. Tienes una placa base de venta al público y el integrador del sistema —tú— nunca rellenó los campos OEM. Algunos fabricantes de placas ofrecen una herramienta de edición DMI que permite configurarlos, pero normalmente no hay ningún motivo para hacerlo.
¿Puedo consultar estos valores en un equipo al que no tengo acceso físico?
Sí, con los permisos adecuados: Get-CimInstance -ComputerName <name> Win32_BaseBoard funciona mediante WinRM o DCOM. Todos los comandos de esta guía que utilizan Get-CimInstance aceptan -ComputerName o -CimSession.
¿Muestra systeminfo los números de serie HWID?
No. Muestra el fabricante, el modelo, la versión del BIOS y el ID de producto de Windows, pero no los números de serie del hardware. Proporciona contexto útil, pero no sirve para consultar números de serie.
¿Cuáles de estos valores puedo cambiar? Este artículo no explica cómo cambiar identificadores y HWID Checker no modifica nada. La dirección MAC y el número de serie del volumen están diseñados para que el usuario pueda cambiarlos; los valores del firmware no deberían modificarse. Alterarlos en una placa de tu propiedad es una cuestión para el proveedor del firmware, no para Windows.
¿Se sube alguno de estos datos cuando ejecuto los comandos? No. Todos los comandos leen tablas de firmware locales, controladores de dispositivos locales o el Registro local. Nada de esta guía se conecta a una red, incluidos los archivos EXE y BAT descargables, que no contienen código de red.
Si tienes un identificador de un programa y quieres saber a cuál de los anteriores se parece más, el comprobador de formatos HWID en línea reconoce UUID, direcciones MAC, hashes hexadecimales y patrones comunes de números de serie, y explica su estructura directamente en tu navegador, sin enviar el valor a ningún sitio.