I haven't done this, and have little experience with 64 bit stuff, but the general approach to accomplishing anything that the built-in features don't support is to use a custom action.
Make it a deferred mode custom action run in system context to ensure that the action runs with elevated rights. You can't access properties directly from a deferred mode custom action, so you might need to write property values into the execution script using an immediate mode custom action. Look into the use of the special CustomActionData property for sending property values from immediate to deferred mode.
Some further details: http://msdn.microsoft.com/en-us/library/aa370543(v=VS.85).aspx