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



Deja un comentario