Mobile Zone is brought to you in partnership with:

Sasha Goldshtein is a Senior Consultant for Sela Group, an Israeli company specializing in training, consulting and outsourcing to local and international customers.Sasha's work is divided across these three primary disciplines. He consults for clients on architecture, development, debugging and performance issues; he actively develops code using the latest bits of technology from Microsoft; and he conducts training classes on a variety of topics, from Windows Internals to .NET Performance. You can read more about Sasha's work and his latest ventures at his blog: Sasha writes from Herzliya, Israel. Sasha is a DZone MVB and is not an employee of DZone and has posted 204 posts at DZone. You can read more from them at their website. View Full User Profile

Running The Boot Camp Control Panel Applet From Windows 8 on MacBook Pro

  • submit to reddit

As John Robbins repeatedly likes to say, Apple computers are the best hardware for running Windows. To quote, “a Mac Pro […] it's the best Windows machine money can buy”. After yesterday’s release of Windows 8 to MSDN subscribers, I went along and installed it on my new MacBook Pro.

Everything went fine—the setup was blazingly fast, all drivers were successfully installed, except for the pesky Apple trackpad settings that were way off what a Windows user comes to expect. In case you don’t know, MacBook trackpads look like this:

There’s no left or right button; just a solid sheet of multi-touch goodness. Well, not-so-goodness—the default gesture for right-click on this trackpad is the following: tap the trackpad with two fingers and simultaneously click with a third finger. (Or, you know, use Shift-F10 every time.)

Typically you’d go to the Control Panel, launch the Boot Camp control panel applet and change all these settings. When I did that, the control panel applet required UAC elevation and then refused to start, claiming that I don’t have access to my startup disk. It’s worth noting that I haven’t requested access to my startup disk.

Scouring the web for hints, I found a post indicating that if you use a standard user account to launch the Boot Camp control panel applet, it works just fine and lets you change the right-click trackpad settings. That’s what I did, only to find the changes made under the new user account do not affect my primary (“Microsoft Account”-enabled) user account.

That’s when I realized that I shouldn’t have been messing around with the secondary user account at all. In fact, it would suffice to launch the control panel applet as standard user, bypassing the elevation process, and it would work fine. So the final piece of puzzle is how to launch a process as standard user when it demands UAC elevation.

This takes me back to the first days of Windows Vista (and this blog), when I even wrote a library called UACHelpers that allows various customizations of this sort. One way or another, to determine whether the program should run elevated Windows consults its manifest. In the case the Boot Camp control panel applet, it says “highestAvailable”, which means that if the user is an administrator, he will be prompted for elevation prior to running the application. We need to modify this to “asInvoker”, so that if the current token is non-elevated, it will be used without prompting for elevation.

I made a copy of the Boot Camp control panel applet (C:\Windows\System32\AppleControlPanel.exe), extracted its manifest using the mt.exe tool, modified it to avoid requesting elevation, embedded it back into the executable, and voila!—everything worked just fine.

In other words:

> copy C:\windows\system32\AppleControlPanel.exe .
> mt.exe -inputresource:AppleControlPanel.exe;#1
> sed –i '' -e's/highestAvailable/asInvoker'
> mt.exe -outputresource:AppleControlPanel.exe;#1
         -manifest extracted.manifest

 To summarize, the days of writing Application Compatibility training kits paid off again.

Published at DZone with permission of Sasha Goldshtein, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Shayne Boyer replied on Mon, 2012/08/27 - 8:12pm

What is this statement? 


 sed –i '' -e's/highestAvailable/asInvoker'5.



mt fails with it 

Will Soprano replied on Mon, 2012/08/27 - 8:41pm

Unfortunately Shayne, this looks like spam. Were working on getting rid of these. Also, we are hoping to enhace comments on posts. So feel free to comment any posts written by other members :)

Joshua Jolley replied on Fri, 2013/03/08 - 4:02pm

There is another solution that takes a bit of technical know how.  It doesn't require switching your account status and permanently fixes the problem.  

1. Download and Install the windows 8 SDK -
2. Navigate to C:\Program Files (x86)\Windows Kits\8.0\bin\x64 (or x86 at the end if you're on a 32 bit version)
3. Copy C:\Windows\System32\AppleControlPanel.exe to this folder
4. Open Command Prompt and use mt.exe to extract the manifest to this folder using the following command:
     mt.exe -inputresource:AppleControlPanel.exe -out:extracted.manifest
5. Edit this file in notepad.  On the 6th line replace level="highestAvailable" with level="asInvoker".     Be careful not to change anything else here.
6. Place the modified manifest back into control panel using mt with the following command:
     mt.exe -outputresource:AppleControlPanel.exe -manifest extracted.manifest
7. Copy and Replace AppleControlPanel.exe back to C:\Windows\System32\AppleControlPanel.exe

This will fix your boot camp control panel problem.  (If it doesn't you've set Bootcamp.exe to run as administrator, and you need to lower its permissions back to normal. I had to change the aforementioned setting, use task manager to end Bootcamp.exe, and then restart it before it worked.  (This program is found in C:\Program Files\Boot Camp))
Good luck guys.  If you need additional help let me know.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.