Mam klasy, która ciągnie model informacji (info Hardware) dla lokalnego kodu maszynowego jest tak:Pobieranie znacznika serwisowego z komputera Dell za pomocą .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
żadnej możliwości, aby uzyskać znacznik serwisowy z WMI? Z formularza po stronie klienta wyświetlać wartości tak:
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
Hi Jason zrobiłem coś takiego: OBJS = Nowa ManagementObjectSearcher ("SELECT * FROM Win32_SystemEnclosure") Potem udało mi się wyciągnąć numer seryjny tak: For Each objMgmt W objS.Get m_strSerial = objMgmt ("numer seryjny") ToString() Następny Domyślam się, że moje pytanie jest różne między WIN32_BIOS i Win32_SystemEnclosure? Nawet uruchomiłem go na zrekonstruowanej maszynie i działa ... – JonH
Z tego co wiem, Win32_SsytemEnclosure opiera się na fizycznym pudełku, w którym komputer jest wbudowany, podczas gdy Win32_BIOS jest chipem na płycie głównej. Moja teoria jest taka, że jeśli przeniesiesz płytę główną z oryginalnego przypadku do innej sprawy, to tagi usług otrzymane z BIOS i SystemEnclosure mogą być inne, ale tego nie przetestowałem. Prawdopodobnie można bezpiecznie założyć, że numer seryjny z obu klas byłby dokładny. –
Dzięki człowiek działa uczta i ma sens. Awesome :) – JonH