Access de Xavi

Funciones => WMI => Mensaje iniciado por: xavi en Abril 20, 2012, 01:39:09 AM

Encuesta
Pregunta: ¿Te ha resultado útil?
Opción 1: Pues sí
Opción 2: Ya lo conocía
Opción 3: Para nada
Título: Número de serie del volumen
Publicado por: xavi en Abril 20, 2012, 01: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



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) (http://www.llodax.com/smf/index.php?topic=43)
Número de serie del volumen (mediante API) (http://www.llodax.com/smf/index.php?topic=44)