One way it can be done is via application layering / masking (via FSLogix app masking). You can have multiple users accessing different VMs and having different config on their application layering profile. Additionally we can use per user policies to configure different OS / software. Additionally some of our ecosystem partners have functionality to supplement that. For example: Liquidware is one such example.