I am looking to identify values in the Windows Desktop OS that persist in non-persistent VDI environments, that can be accessed programmatically (I.E. PowerShell). The only value I know (which isn't suitable for my requirement) is DNS Hostname.
The scenario...
I have created an SaaS application that is licensed per machine per month.
My desktop agent generates a unique ID using persistent system values, submits the ID to my API which checks the ID is unique on our side and that there are sufficient unspent credits in the customers account. If both of these conditions are true a 28 day licence key is created and sent back to the agent in the API response.
This set-up works perfectly for traditional persistent desktops, however I would like to cater for non-persistent VDI environments. Currently. if an organisation had 100 non-persistent desktops and the desktops were re-built after a user session each day, this model would result in 2800 licences being issued and charged for every 28 days rather than 100... good for my bottom line, but not for customer longevity!
The question...
Which OS values, if any, persist between sessions on non-persistent Windows 10 VDI? Is it just the hostname or are there VDI configurations that can also result in the hostname changing? (I'm not aware of any myself).
Thank you!