#uwp #virtual-machine #uniqueidentifier
Вопрос:
У меня есть приложение UWP, которое использует API GetSystemIdForPublisher для получения уникального идентификатора. Наш клиент использует приложение на виртуальных машинах, поэтому получает идентификаторы на основе реестра.
Проблема в том, что заказчику пришлось создавать новые рабочие станции, поэтому он просто клонировал существующую виртуальную машину, чтобы быстрее создавать новые. Итак, теперь все виртуальные машины получают один и тот же идентификатор.
Кто-нибудь знает, как сбросить это значение в реестре, чтобы виртуальная машина начала генерировать разные идентификаторы? Я не нашел в документах никакой информации, указывающей, где в реестре это хранится.
Ответ №1:
Кто-нибудь знает, как сбросить это значение в реестре, чтобы виртуальная машина начала генерировать разные идентификаторы? Я не нашел в документах никакой информации, указывающей, где в реестре это хранится.
Боюсь, вы не смогли бы подойти таким образом, вывести из GetSystemIdForPublisher
документа
Метод сначала попытается использовать Доверенный платформенный модуль (TPM), если таковой имеется, для получения идентификатора. Если TPM отсутствует, метод попытается получить идентификатор из Унифицированного расширяемого интерфейса встроенного ПО (UEFI). Если ни один из этих источников недоступен, этот метод вернет идентификатор, поддерживаемый реестром Windows. В случае реестра Windows идентификатор не будет удовлетворять всем вышеперечисленным гарантиям. Например, если в системе нет поддержки TPM или UEFI, и, следовательно, идентификатор был получен из реестра, чистая установка Windows приведет к возвращению нового, другого идентификатора. Вызывающие этот метод должны обратиться к свойству Source возвращаемого SystemIdentificationInfo, чтобы определить, откуда был получен идентификатор, чтобы понять предоставляемые гарантии.
Но вы клонировали существующую виртуальную машину, которая не может выполнить чистую установку, я боюсь, что вы не сможете получить уникальную для этой системы.
Я не нашел в документах никакой информации, указывающей, где в реестре это хранится.
Реестр находится на системном уровне, и нет документа, который бы четко объяснял это, для этого сценария лучший способ-выполнить чистую установку для новой виртуальной машины.
Комментарии:
1. Я думал, что было что-то вроде sysprep, но это только сбросило идентификаторы и не удалило программное обеспечение или драйверы: docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/…
2. Если вы действительно хотите этого, пожалуйста, не стесняйтесь публиковать свои требования в приложении Windows feed back hub.