Adding a reference to the "System.Management" Namespace to your project would provide access to various serial numbers and additional system information. I have a separate web page dedicated to NuGet and that page has an example which references "System.Management." (The examples on this page do not require NuGet but you may find some of the "System.Management" information useful.)
' Computer and User Names
Public Function UserName() As String
Return My.User.Name
End Function
Public Function User_Authenticated() As Boolean
Return My.User.IsAuthenticated
Return
Public Function Computer_Name() As String
Return My.Computer.Name
End Function
Public Function User_Domain_Name() As String
Return SystemInformation.UserDomainName
End Function
' Operating System
Public Function BootMode() As String
' NormalStart, SafeMode etc.
Return SystemInformation.BootMode.ToString
End Function
' Hardware
Public Function ListDisDrives() As List(Of String)
Dim ret As New List(Of String)
For Each d As IO.DriveInfo In My.Computer.FileSystem.Drives
ret.Add("Drive," & d.Name)
Next
Return ret
End Function
'
Public Function IsDiskDriveAvailable(driveletter As String) As Boolean
Try
Return New DriveInfo(driveletter).IsReady.ToString
Catch ex As Exception
End Try
Return False
End Function
Public Function DriveType(driveletter As String) As String
Try
Dim di As New DriveInfo(driveletter)
Return di.DriveType.ToString
Catch ex As Exception
End Try
Return String.Empty
End Function
Public Function DriveFormat(driveletter As String) As String
Try
Dim di As New DriveInfo(driveletter)
If di.IsReady then
Return di.DriveFormat
End If
Catch ex As Exception
End Try
Return String.Empty
End Function
Public Function DriveAvailableSpace(driveletter As String) As Long
Try
Dim di As New DriveInfo(driveletter)
If di.IsReady then
Return di.AvailableFreeSpace
End If
Catch Ex As Exception
End Try
Return 0
' Returns number of bytes as Long (not integer)
' Result could exceed Integer.Maxvalue
End Function
Public Function DriveVolumeLabel(driveletter As String) As String
Try
Dim di As New DriveInfo(driveletter)
If di.IsReady then
Return di.VolumeLabel
End If
Catch ex As Exception
End Try
Return String.Empty
End Function
' Memory
Public Function ComputerMemoryInstalled() As Long
' returns Long because value could exceed Integer.MaxValue
' Returns bytes
Return My.Computer.Info.TotalPhysicalMemory
End Function
Public Function NumberOfMonitors() As Integer
Return SystemInformation.MonitorCount
End Function
Public Function IsOnANetwork() As Boolean
Return My.Computer.Network.IsAvailable
End Function
' Operating System
Public Function OS_Name As String
Return My.Computer.Info.OSFullName
End Function
Public Function Is_64_Bit_OS As Boolean
Return Environment.Is64BitOperatingSystem
End Function
Public Function OS_Country_Setting As String
Dim g As Globalization.RegionInfo = Globalization.RegionInfo.CurrentRegion
Return g.EnglishName
End Function
DigitalDan.co.uk