Obtener número de serie en Windows

Versión: 2.x, 3.x

La siguiente función permite obtener el número de serie de un volúmen determinado, por ejemplo, C:\ o D:\. Nótese que éste difiere del número de disco asignado por el fabricante. El código utiliza ctypes para acceder a la función de la API de Windows GetVolumeInformation.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from ctypes import byref, c_char_p, c_int, windll

def get_serial_number(volume=None):
    serial_number = c_int(0)
    windll.kernel32.GetVolumeInformationA(
        c_char_p(volume) if volume is not None else None, None, 0,
        byref(serial_number), 0, None, None, 0
    )
    return serial_number.value

El argumento opcional volume permite especificar la ruta de raíz del volumen. Por defecto, la ruta actual es utilizada.
El valor de retorno es el número de serie del volúmen (un entero largo con signo).

Ejemplos:

>>> get_serial_number()
-2099229512
>>> get_serial_number("E:\\")
-1931561383

Curso online 👨‍💻

¡Ya lanzamos el curso oficial de Recursos Python en Udemy! Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter en 2024.

Consultoría 💡

Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.

Deja una respuesta