What if Windows 8.1 had intelligence and no-one cared?

I am currently working on a Windows 8.1 deployment that will end up on quite a few tablets used in retail stores. Interesting project from a requirements perspective, because usually I never had to worry about machines being stolen by customers that much ;)

New Feature in Windows 8.1 Update

Of course, I am deploying Windows 8.1 Update (latest and greatest!) to these tablets which is easy. Create a Build & Capture Task Sequence in MDT and afterwards deploy it with whatever you like. I have to stick to MDT as a deployment tool for the time being, as the customer has not yet upgraded their ConfigMgr environment to 2012 R2.

These tablets (Lenovo Thinkpad Tablet 10 by the way) are of course touch and always used with touch, because the retail agents will be walking around with these devices. Because of this the customer wants the Operating System to boot to Start and not to desktop and use as many modern / immersive applications as possible, for example IE11.

It’s pretty easy to force this behaviour via Group Policy. What would happen though, if the Organisational Unit (OU) these tablets are in, does not only have tablets, but also Laptops which are not touch enabled? You would need to create some kind of filter to only apply this setting to the touch-enabled tablets, right? WRONG!

Microsoft implemented a neat little feature into Windows 8.1 Update which automatically detects whether it is running on a tablet / slate or something else. This feature, if it detects that it’s running on a slate device, will automatically let Windows boot to Start and set File Type Associations to open up the modern / immersive applications. If it detects that it’s running on a mobile or desktop device, then it will boot to Desktop and use the desktop IE11.

Pretty cool, huh? So away goes that GPO!

STOP!

POWER_PLATFORM_ROLE enumeration

How does Windows 8.1 Update know what it’s running on? It’s checking a hardware property, which needs to be set by the device’s vendor. It’s called POWER_PLATFORM_ROLE, seems to be part of PowrProf.dll and can be queried like this:

(get-wmiobject win32_computersystem).PCSystemType

More information on this POWER_PLATFORM_ROLE can be found here: http://msdn.microsoft.com/en-us/library/aa373174%28v=vs.85%29.aspx

What’s the result of above query if you run it on your device? Chances are it’s probably 1, 2 or 4. Bad luck, this cool feature won’t work on your device.

Windows will only boot to Start if this property has a value of ’8′. (http://msdn.microsoft.com/en-us/library/windows/desktop/aa373174%28v=vs.85%29.aspx)

I started a quick poll on Twitter the other day asking people to run that query and report back with their result and hardware:

HP Probook 6560b 2 no touch
HP Elitebook 8470w 2 no touch
Dell Latitude E6230 2 no touch
Dell Latitude E6420 2 no touch
Dell Latitude E6540 2 no touch
Dell XPS 15 9530 2 touch
Dell Optiplex 990 1 no touch
Lenovo T440 P 2 no touch
Lenovo X230 Tablet 2 touch
Lenovo Thinkpad Tablet 10 2 touch
Microsoft Surface Pro (1. Gen) 2 touch
Microsoft Surface Pro (3. Gen) 2 touch

I guess you get the point. No vendor bothers to call their touch devices what they are. Not even Microsoft, not even on the latest of the latest devices! It’s a bit like the Chassis Type thing we here and there have to struggle with when we try to rely on MDT to gather if the device we want to deploy to is a Laptop or a Desktop.

If you are in a position where you are buying devices for your company, then please do us all a favour and try to force the vendor to put in the correct value in this property.
Maybe you have a device that already tells you the truth and you want to have it on this list? Just put it into the comments and I’ll update the table.

email

Written by , Posted .