Постоянные значения в непостоянных Windows VDI

Я ищу для определения значений в ОС Windows Desktop, которые сохраняются в непостоянных средах VDI, к которым можно получить программный доступ (IE PowerShell). Единственное известное мне значение (которое не подходит для моих требований) - это имя хоста DNS.

Сценарий...

Я создал приложение SaaS, которое лицензируется на машину в месяц.

Мой настольный агент генерирует уникальный идентификатор, используя постоянные системные значения, передает идентификатор в мой API, который проверяет, является ли идентификатор уникальным с нашей стороны, и имеется ли достаточное количество неизрасходованных кредитов в учетной записи клиента. Если оба эти условия выполняются, 28-дневный лицензионный ключ создается и отправляется обратно агенту в ответе API.

Эта настройка отлично подходит для традиционных настольных ПК, но я бы хотел использовать непостоянные среды VDI. В настоящее время. если в организации было 100 непостоянных рабочих столов, и рабочие столы перестраивались после сеанса пользователя каждый день, эта модель приводила бы к 2800 лицензиям, выдаваемым и взимаемым за каждые 28 дней, а не к 100... хорошо для моей прибыли, но не для долговечности клиента!

Вопрос...

Какие значения ОС, если таковые имеются, сохраняются между сеансами в непостоянном VDI Windows 10? Это просто имя хоста или есть конфигурации VDI, которые также могут привести к изменению имени хоста? (Я не знаю ничего о себе).

Спасибо!

0 ответов

Прошло время, но кто-то, ответивший год спустя, вернул меня:)

Я использую хешированную комбинацию из следующего:

  • MachineGuid ценность в SOFTWARE\Microsoft\Cryptography ключ
  • UUID из (Get-CimInstance Win32_ComputerSystemProduct).UUID
  • Дополнительная энтропия, собранная из закрытого частного API

Каждый раз, когда отображается новый идентификатор устройства, мой API запускает набор значений об аппаратном обеспечении и программном обеспечении (около 20) с помощью функции достоверности. Если 15 из этих значений совпадают, применяется существующая лицензия, в противном случае назначается новая лицензия.

Теперь извините, если я не на 100% понимаю, где и как подключается ваш API, но:

Вы можете получить хорошее представление об уникальных идентификаторах, если перейдете со стороны контроллера доставки. При наличии необходимого SDK PowerShell может предоставить вам довольно много информации через get-brokermachine (я бы добавил несколько необходимых фильтров, например -DesktopGroupName "YourDeliveryGroupName", просто проверьте документацию здесь.

Если вы говорите о самом рабочем столе, вы можете теоретически получить MAC-адрес, потому что (я бы сказал, независимо от вашего типа хоста) он всегда уникален, и у вас есть возможность получить значение через PowerShell, если у вас есть необходимые SDK добавлен.

Кроме этого, я боюсь (и я только что проверил на своем непостоянном VirtualDesktop VDI), что нет других действительно уникальных идентификаторов, кроме вашего DNS.

Итак, если вы действительно хотите избежать DNS, а также MAC, теоретически вы можете получить уникальный SID (или действительно любое другое уникальное значение, которое Citrix DC дает вам несколько), передать его на соответствующее устройство и перейти оттуда. Я думаю о каждой машине-брокере |...

(хотя мне нравится PoSH, я не совсем уверен, как выполнить эту конкретную задачу)

Другие вопросы по тегам