RegEdit showed both VirtualBox and VBoxSvr had a compatability setting: RUNASADMINISTRATOR.
Removing these keys from the Registry restores the original (non-UAC) behaviour - Although I would have sworn that I hadn't changed these settings until /after/ the UAC prompts had started appearing (why would I have wanted to?) after rereading the notes from my initial 1.5.6 installation, perhaps I did wrongly apply this old work-round too liberally.
>> Your COM server VboxSvc.exe must be set to run as administrator.
>> Open your Virtualbox folder, Right-click Vboxsvc.exe, properties “run as administrator”
In the hope that this might save someone from hours of Googling when trying to track down Vista UAC problems, I'll post some notes here...
I found a (probably simplified) description of how Vista UAC decides if it needs to raise a prompt...
"First Vista checks for the presence of an embedded manifest. If there is one and it specifies a requestedExecutionLevel, Vista uses that to determine whether or not to elevate via UAC."
Looking at the embedded manifest with SysInternal's SigCheck...
C:\Program Files\Sun\xVM VirtualBox>sigcheck -m VirtualBox.exe
Signing date: 20:25 07-Apr-09
Strong Name: Unsigned
Publisher: Sun Microsystems, Inc.
Description: VirtualBox GUI
Product: Sun VirtualBox
File version: 2.2.0.r45846
...No mention of "RunAsAdmin" privilege there!
"Secondly, assuming there was no embedded manifest at all, Vista looks for an external manifest file with a requestedExecutionLevel. If that exists, Vista uses it to decide whether or not to elevate via UAC."
That should be a N/A - and there's no external manifest anyway.
"If we reach the third stage, Vista has determined that the application is not Vista compliant and so starts using the Application Compatibility settings to determine whether or not elevation is likely to be required. Predominantly this is based on an appcompat flag that indicates elevation is required (equivalent to the "Always run the program as an Administrator" flag in the Compatability settings) and detection of known binaries which have identified issues."
By my reading, we shouldn't "reach the third stage", but Explorer, right-click on "VirtualBox.exe", Properties, Compatability, and the "Privilege Level / Run this program as an Administrator" option is indeed checked - and greyed-out.
Back to Google to see why that option might be greyed...
"If the file has a Windows Vista manifest identifying the level of privilege required then the compatability options will be greyed out."
Well, SigCheck says it does have a manifest but that doesn't identify any privilege.
"Vista will attempt to identify installers and prompt you for elevation (indicated by the small shield overlay icon)."
And squinting at the icon - yes, it does have a teensy little shield on both VirtualBox and VBoxSvc that my ageing eyes hadn't noticed before.
"There is also an appcompat feature known as installer detection. This uses a variety of non-disclosed settings to attempt to identify installers and elevate them if required. The specifics of how an installer is detected is not disclosed because it's not something Microsoft want you to depend upon and indeed it may change as Service Packs and hotfixes are released."
"Non-disclosed" won't help me to fix it. But since no other Vista-host user is reporting errors, maybe the problem is with my compatability options...
RegEdit - HKLU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers