Running The Boot Camp Control Panel Applet From Windows 8 on MacBook Pro
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
-out:extracted.manifest
> sed –i '' -e's/highestAvailable/asInvoker'
extracted.manifest
> mt.exe -outputresource:AppleControlPanel.exe;#1
-manifest extracted.manifestTo summarize, the days of writing Application Compatibility training kits paid off again.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Shayne Boyer replied on Mon, 2012/08/27 - 7:12pm
What is this statement?
sed –i '' -e's/highestAvailable/asInvoker'5.extracted.manifest
mt fails with it
Will Soprano replied on Mon, 2012/08/27 - 7:41pm
Joshua Jolley replied on Fri, 2013/03/08 - 3:02pm
1. Download and Install the windows 8 SDK - http://msdn.microsoft.com/en-us/windows/desktop/hh852363.aspx
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.