Model Match not matching model containing a +


  • I work with any Microsoft Surface product we can get, and unfortunately this is a challenging environment for Model Match. In this specific case, there is a Surface Pro 7, and a Surface Pro 7+

    I have not been able to get model match to work for the 7+, Starts-with "surface pro 7" does match, but that won't help when I have 7s to do. I tried a few ways to escape the +, or designate it via UTF8, mainly focusing on Powershell and C# conventions. I also tried to chase the data through the codebase, but I'm not that good. I was able to locate the comparison, and couldn't identify anything wrong with it, but I couldn't get from the Update Profile action to the match string being entered into the database.

    The deploy log does refer to the model correctly, but it's also possible that the + is getting mixed up as it's sent from the client side, I haven't looked for where the winpe scripts are yet.

    A second case is the Surface Pro, aka the Surface Pro (2017), or Pro 5, the 5th pro, Kuzko's pro. I am currently matching that with Equals, but I don't have an LTE model on hand to see if that makes it a Surface Pro LTE. My plan for that is to clone the profile to have two exact matches, but it would be nice if I could in regex terms do /Surface Pro ?\D/, or use the processor as a factor in the match.

    The latter would also solve the namespace collision between the Surface Pro (2013) and the Surface Pro (2017), and solve an obtuse thing where we put Home on most Surface Go 2s, except ones with a certain processor get Pro. Currently I have no time efficient way to check the processor, as this is not revealed in the UEFI.

    I'm not certain the bug will apply, but there are also Dell Latitude tablets which have "2-in-1" in the model, to distinguish them from Latitude Laptops with the same model number.