Я смотрел на код в этом учебном руководстве, и я нашел, что это использует My.Computer.Name
сохранять настройки, которые не должны перемещаться между компьютерами. Совершенно возможно, однако, для пользователя иметь два тождественно именованных ПК. Если они хотели иметь то же имя пользователя на каждом ПК, например, они могут закончить с двумя ПК по имени ПК имени пользователя.
Каковы некоторые хорошие методы идентификации различных ПК? ПК связывали GUID с ними, или я должен изучить осуществление порядкового номера некоторых аппаратных средств? Я не забочусь, сохраняется ли идентификация посредством переустановки Windows.
(Учебное руководство, которое я связал, находится в VB.Net, но я реализую его в C#),
Некоторые хорошие идентификаторы:
Если вы на windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\ProductId
уникален для каждой машины/каждой установки windows. в то время как в некоторых других ответах, таких как MAC-адрес, Proc SN и HD SN будут оставаться неизменными между переустановками windows/ситуациями двойной загрузки.
Используйте MAC-адрес сетевой карты. Он должен быть уникальным. Однако его можно изменить. Это зависит от того, насколько злонамеренными будут ваши пользователи и насколько критичным является ваше приложение.
Некоторые примеры кода для этого:
public string GetMACAddress() {
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
string MACAddress = String.Empty;
foreach (ManagementObject mo in moc) {
if (MACAddress == String.Empty) { // only return MAC Address from first card
if ((bool)mo["IPEnabled"] == true) MACAddress = mo["MacAddress"].ToString();
}
mo.Dispose();
}
return MACAddress;
}
Можно использовать MAC любого сетевого интерфейса. Вы также можете объединить несколько источников информации. Например, серийный номер жесткого диска, mac, тип процессора, чтобы вычислить хэш.
Я не думаю, что возможно иметь два ПК с одинаковым именем в одном домене. Вы пробовали перехватить имя домена?
У каждого компьютера есть идентификатор безопасности, который при обычных обстоятельствах уникален.
Взгляните сюда: Получение метки обслуживания с компьютера Dell с использованием .net?
Вы можете извлечь некоторые уникальные данные из реестра.