Autor Tema: Número de serie del volumen  (Leído 5963 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 220
Número de serie del volumen
« en: Abril 20, 2012, 12:39:09 am »
Palabras clave: WMI, averiguar, extraer, saber, numero serie, volumen, disco
Autor: Búho desarrollando una idea de Eduardo Morcillo
Extraído de: La web del Búho

Objetivo
Extraer el número de serie del volumen  (dado al formatear) mediante WMI.

Cita de: Búho
Con WMI tienes varias clases que se refieren a los discos: Win32_DiskDrive que representa al disco fisico, Win32_LogicalDisk que representa al disco logico y Win32_PhysicalMedia que representa un medio fisico de almacenamiento. Con la propiedad VolumeSerialNumber de Win32_LogicalDisk obtienes el # de serie dado al formatear el disco logico. La propiedad Signature de Win32_DiskDrive segun la documentacion es un identificador del disco que esta disponible en desde el XP en adelante y no da indicacion de que sea el numero de serie. Lo que si te devuelve el numero de serie físico del disco es la propiedad SerialNumber de Win32_PhysicalMedia (que segun la documentacion es "Manufacturer-allocated number used to identify the physical media.").

Este comentario es gentileza de Eduardo Morcillo, MVP Visual Basic


Código: [Seleccionar]
Sub Fisico()
'Disco Fisico
'
Dim ObjetoWMI As Object
Dim Disco As Object
Dim Discos As Object
Set ObjetoWMI = GetObject("WINMGMTS:")
Set Discos = ObjetoWMI.InstancesOf("Win32_DiskDrive")
 For Each Disco In Discos
      MsgBox "Serie decimal: " & Disco.signature
      MsgBox "Serie Hexadecimal: " & Hex$(Disco.signature)
 Next

End Sub

Sub Logico()
'Disco Logico
'Numero dado al formatear

Dim ObjetoWMI As Object
Dim Disco As Object
Dim Discos As Object
Set ObjetoWMI = GetObject("WINMGMTS:")
Set Discos = ObjetoWMI.InstancesOf("Win32_LogicalDisk")
 For Each Disco In Discos
      MsgBox "Unidad disco: " & Disco.Name & "  serie logica: " & Disco.VolumeSerialNumber
 Next
End Sub

Sub Fabrica()
'devuelve el numero de serie fisico
'del disco(que segun la
'documentacion es "Manufacturer-allocated number used to identify the
'physical media.").
Dim ObjetoWMI As Object
Dim Disco As Object
Dim Discos As Object
Set ObjetoWMI = GetObject("WINMGMTS:")
Set Discos = ObjetoWMI.InstancesOf("Win32_PhysicalMedia")
 For Each Disco In Discos
      MsgBox "Serie Fabrica: " & Disco.SerialNumber
 Next

End Sub




Te puede interesar...
Número de serie del volumen (mediante FSO)
Número de serie del volumen (mediante API)
« Última modificación: Abril 20, 2012, 12:45:50 am por xavi »