SupBe
SupBe

Reputation: 103

Vb.NET Device Unique Identifier Win10

I'm trying to get a Device Unique Identifier in vb.net code. I have tried with

 Private Function SystemSerialNumber() As String
    Dim value As String = ""
    Dim baseBoard As ManagementClass = New ManagementClass("Win32_BaseBoard")
    Dim board As ManagementObjectCollection = baseBoard.GetInstances()
    If board.Count > 0 Then
     value = board(0)("SerialNumber")
    If value.Length > 0 Then value = value.Substring(2)
    End If
    Return value
 End Function

Which works on some computers but of the board doesn't have a serial number it returns "Default String" or whatever they put in there. Even tried with Win32_Processor and some have it and others just return "To be filled by O.E.M" lol

Also tried with,

Private Function SystemSerialNumber() As String
    Dim value As String
    Dim q As New SelectQuery("Win32_bios")
    Dim search As New ManagementObjectSearcher(q)
    Dim info As New ManagementObject
    For Each info In search.Get
        value = info("SerialNumber").ToString
        Return value
    Next
End Function

But its the same some devices have it some don't and just returns default string.

So I'm now trying is:

Private Function SystemSerialNumber() As String
    Dim value As String
    value = Windows.System.Profile.SystemIdentification.GetSystemIdForPublisher()
End Function

But I'm having trouble referencing to it. I tried Imports Windows.System but it just gives the error it cant be found.

As a side note I'm using this program in tablets with windows10, laptops, and desktops.

UPDATE: I'll be using as suggested by Heinzi. Thanks! Also changed variable names to be more accurate.

    Private Function NetworkAdapterMacAddress() As String
    Dim McAddress As String
    Dim netadapter As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
    Dim mo As ManagementObject
    Dim adapter As ManagementObjectCollection = netadapter.GetInstances()
    For Each mo In adapter
        If mo.Item("IPEnabled") = True Then
            McAddress = mo.Item("MacAddress").ToString()
            Return McAddress
        End If
    Next
End Function

Upvotes: 2

Views: 1075

Answers (1)

Heinzi
Heinzi

Reputation: 172230

Well, there is no guaranteed ID that identifies every PC out there uniquely (fortunately, I might add. Privacy is a good thing).

You best bets are probably

Oh, and on a philosophical note, you might want to ponder on the Ship of Theseus.

Upvotes: 3

Related Questions