Получить серийный номер компьютера на C#

Чтобы получить серийный номер компьютера на C#, вы можете использовать разные методы в зависимости от ваших требований. Вот несколько подходов, которые вы можете использовать:

Метод 1: использование ManagementObjectSearcher и WMI (инструментария управления Windows):

using System.Management;
string GetComputerSerialNumber()
{
    string serialNumber = string.Empty;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BIOS");
    ManagementObjectCollection collection = searcher.Get();
    foreach (ManagementObject obj in collection)
    {
        serialNumber = obj["SerialNumber"].ToString();
        break;
    }
    return serialNumber;
}

Метод 2: использование WMI и запрос класса Win32_ComputerSystemProduct:

using System.Management;
string GetComputerSerialNumber()
{
    string serialNumber = string.Empty;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT IdentifyingNumber FROM Win32_ComputerSystemProduct");
    ManagementObjectCollection collection = searcher.Get();
    foreach (ManagementObject obj in collection)
    {
        serialNumber = obj["IdentifyingNumber"].ToString();
        break;
    }
    return serialNumber;
}

Метод 3: использование System.Management и запрос к классу Win32_BaseBoard:

using System.Management;
string GetComputerSerialNumber()
{
    string serialNumber = string.Empty;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT SerialNumber FROM Win32_BaseBoard");
    ManagementObjectCollection collection = searcher.Get();
    foreach (ManagementObject obj in collection)
    {
        serialNumber = obj["SerialNumber"].ToString();
        break;
    }
    return serialNumber;
}

Эти методы используют разные классы WMI для получения серийного номера компьютера. Вы можете выбрать тот, который лучше всего соответствует вашим потребностям.