¿Cómo obtener el número de serie del disco duro desde la línea de comandos?

39

Desde el símbolo del sistema basado en Windows NT (Windows XP y 7 específicamente), ¿cómo puedo obtener el número de serie de un disco duro como variable? El que estoy viendo es el número de serie del disco duro físico

El canadiense Luke REINSTATE MONICA
fuente
Para Windows XP, consulte esta pregunta para obtener un método adecuado: superuser.com/q/708146/24010
Canadian Luke REINSTATE MONICA
2
Si tiene muchos discos duros como yo, use esto en su lugar para saber cuál es cuál: wmic diskdrive get name,size,model,SerialNumber...Source
Enissay
Posiblemente relacionado: obtener el número de serie del disco duro .
G-Man dice 'Restablecer a Monica' el

Respuestas:

56

Prueba este comando

vol C:

Esto obtendrá el número de serie del volumen que Windows le ha dado.

wmic diskdrive obtener número de serie

esto obtiene el número de serie del disco duro del fabricante.

Moab
fuente
No veo eso en su pregunta, tal vez necesite volver a redactar el título, "¿Cómo obtener el número de serie del disco duro desde la línea de comandos?"
Moab
Cuando uso wmic diskdrive get serialnumberrecibo el mensaje Invalid XML. Qué significa eso?
Maxbester
Recibo un error de consulta no válida para wmic diskdrive get serialnumber.
atoMerz
1
@Maxbester y @atoMerz: tuve ambos problemas. Invalid XMLse debió a tener más de una unidad conectada y Invalid queryocurrió porque estaba en Windows XP. Vea esta respuesta para ambos problemas: stackoverflow.com/questions/9287450/…
Matthias Braun
2
¡Precaución! wmic diskdrive get serialnumber(y la Win32_DiskDriveclase WMI en general) devuelve el número de serie con cada par de caracteres invertidos. Entonces, si la etiqueta de su disco duro dice "abcd1234", WMI informará su número de serie como "badc2143". Más información aquí .
rojo
5
  • Lo que está viendo NO es el número de serie del disco duro.

  • Se llama el número de serie del volumen . Se genera al momento de crear y formatear el volumen / partición.

  • Puede obtenerlo utilizando un comando en el símbolo del sistema: C:\> vol c:si C:es la unidad para la que desea recuperar el número de serie del volumen.

  • Todo lo que puede hacer es redirigir la salida de ese comando a un archivo: C:\> vol c: > myvol.txty se almacenará como un archivo de texto en suC:

  • Adjunto una captura de pantalla con los aspectos más destacados:

ingrese la descripción de la imagen aquí

  • El archivo se almacenó en la raíz de C:

ingrese la descripción de la imagen aquí

  • Así es myvol.txtcomo se ve el archivo en el Bloc de notas:

ingrese la descripción de la imagen aquí

aliasgar
fuente
Pregunta editada; lo siento por la información errónea
Canadian Luke REINSTATE MONICA
1
Antes de considerar un voto negativo a esta respuesta, tenga en cuenta que se publicó antes de que el OP aclarara la pregunta original. Esta respuesta fue correcta para la pregunta original.
Digo reinstalar a Mónica
¿Los números de serie recuperados de esta manera no coinciden con los números de serie en SeaTools para Windows?
PrimitiveNom
5

En la misma línea que la respuesta de Moab, pero usando PowerShell esta vez:

Get-CimInstance Win32_DiskDrive | Select-Object Model,SerialNumber

Este comando obtiene una instancia de la Win32_DiskDriveclase WMI y genera el modelo de cada unidad de disco en la computadora y su número de serie correspondiente de esa instancia.

Esta respuesta asume PowerShell 3.0 o posterior. Si ejecuta una versión anterior, úsela Get-WmiObjecten lugar de Get-CimInstance.

En Windows 8 y versiones posteriores, también puede usar este comando:

Get-PhysicalDisk | Select-Object FriendlyName,SerialNumber
bwDraco
fuente
4

En un archivo por lotes, un enfoque es:

  1. Comando VOL para producir el número de serie como texto junto con el texto que no queremos.
  2. ENCONTRAR para recortarlo solo a la línea con el número de serie.
  3. FOR para agarrar el quinto token (una parte entre delimitadores) en la línea con el número de serie.
  4. SET para asignar a una variable de entorno

for /f "tokens=5 delims= " %%a in ('vol c: ^| Find "Serial Number"') do (
set VOLSERIAL=%%a
)
Brian
fuente
Pregunta editada; lo siento por la información errónea
Canadian Luke REINSTATE MONICA
2
Antes de considerar un voto negativo a esta respuesta, tenga en cuenta que se publicó antes de que el OP aclarara la pregunta original. Esta respuesta fue correcta para la pregunta original.
Digo reinstalar a Mónica