Я не вижу ничего плохого в вашем подходе, так как я видел подобный подход, используемый на работе - однако мы используем комбинацию идентификаторов ОС и аппаратных идентификаторов для лицензирования компьютеров. Наши приложения не имеют лицензий для каждого пользователя, поэтому я не могу посоветовать это.
Обратите внимание, что не следует предполагать, что значения, возвращаемые WMI, имеют какой-либо определенный формат ( Win32_OperatingSystem должно быть в порядке, идентификаторы оборудования не всегда в порядке)
Я сталкивался с ошибками, когда код, принимающий аппаратные идентификаторы, принимал определенный формат и не учитывал наличие не буквенно-цифровых символов, таких как запятые и пробелы.