Я хочу определить значения в ОС Windows Desktop, которые сохраняются в непостоянных средах VDI, к которым можно получить программный доступ (например, PowerShell). Единственное известное мне значение (которое не соответствует моим требованиям) - DNS Hostname.
Сценарий ...
Я создал приложение SaaS с лицензией на каждую машину в месяц.
Мой агент рабочего стола генерирует уникальный идентификатор, используя постоянные системные значения, отправляет идентификатор в мой API, который проверяет, является ли идентификатор уникальным с нашей стороны и что в учетной записи клиента достаточно неизрасходованных кредитов. Если оба этих условия верны, создается 28-дневный лицензионный ключ, который отправляется обратно агенту в ответе API.
Эта настройка идеально подходит для традиционных постоянных рабочих столов, однако я хотел бы обслуживать непостоянные среды VDI. В настоящее время. если бы в организации было 100 непостоянных рабочих столов и рабочие столы перестраивались после пользовательского сеанса каждый день, эта модель привела бы к выдаче 2800 лицензий и оплате за каждые 28 дней, а не за 100 ... хорошо для моей прибыли, но не для долговечности клиентов!
Вопрос...
Какие значения ОС, если таковые имеются, сохраняются между сеансами в непостоянном VDI Windows 10? Это просто имя хоста или есть конфигурации VDI, которые также могут привести к изменению имени хоста? (Я ничего не знаю).
Спасибо!
Прошло время, но кто-то, ответивший год спустя, вернул меня :)
Я использую хешированную комбинацию из следующего:
MachineGuid
ценность в SOFTWARE\Microsoft\Cryptography
ключ (Get-CimInstance Win32_ComputerSystemProduct).UUID
Каждый раз, когда отображается новый идентификатор устройства, мой API запускает набор значений об аппаратном обеспечении и программном обеспечении (около 20) с помощью функции достоверности. Если 15 из этих значений совпадают, применяется существующая лицензия, в противном случае назначается новая лицензия.
Теперь извините, если я не на 100% понимаю, где и как подключается ваш API, но:
Вы можете получить хорошее представление об уникальных идентификаторах, если перейдете со стороны контроллера доставки. С необходимым SDK PowerShell может предоставить вам довольно много информации через get-brokermachine (я бы добавил несколько необходимых фильтров, например, -DesktopGroupName "YourDeliveryGroupName", просто проверьте документацию Вот.
Если вы говорите о самом рабочем столе, вы можете теоретически получить MAC-адрес, потому что (я бы сказал, независимо от вашего типа хоста) он всегда уникален, и у вас есть возможность получить значение через PowerShell, если у вас есть необходимые SDK добавлен.
Кроме этого, я боюсь (и я только что проверил на своем непостоянном VirtualDesktop VDI), что нет других действительно уникальных идентификаторов, кроме вашего DNS.
Итак, если вы действительно хотите избежать DNS, а также MAC, вы можете теоретически получить уникальный SID (или действительно любое другое уникальное значение, которое Citrix DC дает вам несколько), отправить его на соответствующее устройство и перейти оттуда. Я думаю о каждой машине-брокере | ...
(хотя мне нравится PoSH, я не совсем уверен, как выполнить эту конкретную задачу)