Tengo una clase que extrae información del modelo (información de hardware) un código máquina local es de esta manera:Obtener etiqueta de servicio de la máquina Dell usando .net?
Imports System.Management
Public Class clsWMI
Private objOS As ManagementObjectSearcher
Private objCS As ManagementObjectSearcher
Private objMgmt As ManagementObject
Private m_strComputerName As String
Private m_strManufacturer As String
Private m_StrModel As String
Private m_strOSName As String
Private m_strOSVersion As String
Private m_strSystemType As String
Private m_strTPM As String
Private m_strWindowsDir As String
Public Sub New()
objOS = New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem")
objCS = New ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")
For Each objMgmt In objOS.Get
m_strOSName = objMgmt("name").ToString()
m_strOSVersion = objMgmt("version").ToString()
m_strComputerName = objMgmt("csname").ToString()
m_strWindowsDir = objMgmt("windowsdirectory").ToString()
Next
For Each objMgmt In objCS.Get
m_strManufacturer = objMgmt("manufacturer").ToString()
m_StrModel = objMgmt("model").ToString()
m_strSystemType = objMgmt("systemtype").ToString
m_strTPM = objMgmt("totalphysicalmemory").ToString()
Next
End Sub
Public ReadOnly Property ComputerName()
Get
ComputerName = m_strComputerName
End Get
End Property
Public ReadOnly Property Manufacturer()
Get
Manufacturer = m_strManufacturer
End Get
End Property
Public ReadOnly Property Model()
Get
Model = m_StrModel
End Get
End Property
Public ReadOnly Property OsName()
Get
OsName = m_strOSName
End Get
End Property
Public ReadOnly Property OSVersion()
Get
OSVersion = m_strOSVersion
End Get
End Property
Public ReadOnly Property SystemType()
Get
SystemType = m_strSystemType
End Get
End Property
Public ReadOnly Property TotalPhysicalMemory()
Get
TotalPhysicalMemory = m_strTPM
End Get
End Property
Public ReadOnly Property WindowsDirectory()
Get
WindowsDirectory = m_strWindowsDir
End Get
End Property
End Class
Cualquier posibilidad de obtener una etiqueta de servicio de WMI? De forma parte del cliente puedo mostrar los valores de este modo:
Dim objWMI As New clsWMI()
With objWMI
Debug.WriteLine("Computer Name = " & .ComputerName)
Me.Label1.Text = "Name: " & .ComputerName
Debug.WriteLine("Computer Manufacturer = " & .Manufacturer)
Me.Label2.Text = "Manufacturer: " & .Manufacturer
Debug.WriteLine("Computer Model = " & .Model)
Me.Label3.Text = "Model: " & .Model
Debug.WriteLine("OS Name = " & .OsName)
Me.Label4.Text = "OS Name: " & .OsName
Debug.WriteLine("OS Version = " & .OSVersion)
Me.Label5.Text = "OS VERSION: " & .OSVersion
Debug.WriteLine("System Type = " & .SystemType)
Me.Label6.Text = "System type = " & .SystemType
Debug.WriteLine("Total Physical Memory = " & .TotalPhysicalMemory)
Me.Label7.Text = "Memory: " & .TotalPhysicalMemory
Debug.WriteLine("Windows Directory = " & .WindowsDirectory)
Me.Label8.Text = "Win Directory: " & .WindowsDirectory
End With
Hola Jason me hizo algo como esto: objs = Nueva ManagementObjectSearcher ("SELECT * FROM Win32_SystemEnclosure") entonces yo era capaz de sacar el número de serie de este modo: Para Cada objMgmt En objS.Get m_strSerial = objMgmt ("número de serie"). ToString() Siguiente Supongo que mi pregunta es ¿cuál es la diferencia entre WIN32_BIOS y Win32_SystemEnclosure? Incluso lo ejecuté en una máquina reconstruida y funciona ... – JonH
Por lo que puedo decir, Win32_SsytemEnclosure se basa en el cuadro físico en el que está integrada la computadora, mientras que Win32_BIOS es el chip en la placa base. Mi teoría es que si mueves una placa base de su caja original a otra, las etiquetas de servicio que obtienes de BIOS y SystemEnclosure pueden ser diferentes, pero no he probado esto. Probablemente sea seguro suponer que el número de serie de cualquiera de las clases sería exacto. –
Gracias hombre trabaja un regalo y tiene sentido. Awesome :) – JonH