![]() |
| Program Compatibility Assistant problem with v.339-21 |
|
Doon
Guest
|
Hello again, tzuk!
I just installed the latest beta: SandboxieInstall-339-21.exe The version I was upgrading from was one version prior to the current official version. I must note that I haven't had time to explore what's new in Sandboxie (though having read the forums I have some clue), I simply fired it up and tried the nearest installer exe just to test it out, without changing any settings. Running on Vista Home Premium, in launching Sandboxie from a standard user account I encountered a serious problem. The installer is one that obviously needed elevation, I know that Sandboxie is now doing things differently on this front by I don't know anything about that yet. Sandboxie threw up this error message when I tried to run the installer: --------------------------- Sandboxie Start --------------------------- Could not invoke program:"C:\Downloads\whatever.exe" System Error Code: The requested operation requires elevation. (740) --------------------------- OK --------------------------- That's all fine with me, BUT, immediately after that message was OK'd one of Microsoft's idiotic "we'll make the decisions for you" trojan horses took over and really messed things up. Up came the following message box: ------------------------------------------------------ Program Compatibility Assistant Windows detected that this program did not run correctly To try and fix the problem, Windows (in it's infinite wisdom) has applied compatibility settings to this program. Windows will use these settings the next time you run the program. If you noticed that this program didn't run correctly, try running the program again. Program: Sandboxie Start Publisher tzuk Location: C:\Utilities\Sandboxie\Start.exe ------------------------------------------------------ After that, upon trying to run the installer in the same way again, I get no error messages but Sandboxie does nothing but start a new "start.exe" every second. Nothing happens and it starts another, until a huge list builds up in Sandboxie control, and I must terminate processes to end it all. I try to find out what this stupid Program Compatibility Assistant has done to my system (it has nothing to do with the OS Compatibility options on a file Properties tab). I tracked the main changes to two registry keys, there's surely more hidden somewhere in the registry but I don't know what or where): [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted] "C:\\Utilities\\Sandboxie\\Start.exe"=dword:00000002 [HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "C:\\Utils\\Sandboxie\\Start.exe"="ELEVATECREATEPROCESS" If I delete those two keys I can start the error message process all over again, but I get the same results of course, as previously described. I haven't done anything more yet and I'm quitting for now and filing this report, for what it's worth. If anyone has any thoughts or questions or suggestions then please feel free to speak up, I'll be back in about 24 hours. ------------------------------------------------------ Program Compatibility Assistant: frequently asked questions - What is the Program Compatibility Assistant? The Program Compatibility Assistant detects known compatibility issues in older programs. After you have run an older program in this version of Windows, it notifies you if there is a problem and offers to fix it the next time you run the program. If the compatibility issue is serious, the Program Compatibility Assistant might warn you or block the program from running. If that happens, you'll have the option to check online for possible solutions. - What changes does it make? It depends on the problem, but any changes made are related to how Windows runs the program. No changes are made to the program itself. For example, the Program Compatibility Assistant can resolve conflicts with User Account Control, a new security feature in this version of Windows that can help make your computer safer. Or, it can run the program in a mode that simulates earlier versions of Windows. The changes that Program Compatibility Assistant makes are done automatically, so you don't need to make them. - How do I turn it off or turn it back on? Adjustments to the Program Compatibility Wizard can be made by using Group Policy. For more information on how to use Group Policy, go to the Microsoft website for IT professionals. ------------------------------------------------------ Links I visited: http://support.microsoft.com/kb/931709 http://www.howtogeek.com/howto/4161/disable-program-compatibility-assistant-in-windows-7-and-vista/ |
||||||||||||
|
|
|||||||||||||
|
Doon
Guest
|
Nope, I'm sorry for my lack of clarity, my first paragraphs above are indeed a mess.
I installed the new Sandboxie without any problem. Then, in wanting to test Sandboxie I ran the first other program installer I could find in my downloads folder. I was operating in a standard user account in Vista, and it turns out the installer I tried is one that required admin privileges to run (I can test other such installers later to see if I get the same results). Sandboxie has changed in way it handles the need for elevation, which somehow triggered the sequence of errors I described. |
||||||||||||
|
|
|||||||||||||
|
tzuk
|
Unfortunately I was uable to reproduce the problem. Trying to run something from a standard user account, I got error 740 indeed, but that was the end of it. No Program Compatibility Assistant.
Tell me please, after the Program Compatibility Assistant interfered, can you still invoke the Sandboxie command to Run Web Browser? In other words, can Start.exe still launch IExplore.exe even after the PCA made some changes. |
||||||||||||
|
|
|||||||||||||
|
Doon
Guest
|
Starting clean. After error 740 was triggered in Sandboxie (in the scenario already described) the Assistant popped up with the message I posted above ("Windows has applied compatibility settings to this program").
The assistant then added these values to the registry, to intercept Start.exe in the future:
Based on the registry entries created, I presume that Program Compatibility Assistant triggered on "ELEVATECREATEPROCESS", and it is ONLY when Start.exe tries to invoke that function that the Assistant will interfere, leading to a seemingly endless string of start.exe starting. With that in mind, and to answer your question: once those keys were in place I seemed able to run normal things like the IE web browser in Sandboxie just fine, but if I tried to run anything that would require elevation (I only tested one item so far) then Sandboxie would immediately go into it's loop of starting start.exe, without popping up any 740 errors beforehand (thanks to PCA's interference). I deleted the keys and restarted SbieCtrl and tried everything mutiple times, always with the same results. Perhaps you've already tried this, but if you edit and add those reg keys to your registry, and try to run something that would trigger a 740, perhaps you can recreate the Sandboxie 'loop' result. I do not know why the PCA decided to intervene on my Vista system, but perhaps it's an issue of what version everything is through Windows Updates. The end result of the interference is that one might sit waiting for something to happen after trying to run something Sandboxed, not knowing if it would need elevation or not. Then one would have to view the processes in SbieCtrl to see what was wrong, and might see that hundreds of instances of start.exe have started, and would then have to terminate everything in the sandbox (I didn't leave the loop running long enough to see the eventual result). Removing the PCA registry entries will enable Sandboxie to alert with a 740 again, but then PCA will once again jump in after ELEVATECREATEPROCESS and will forever after monkey with start.exe when it invokes it. I'm writing this while away from the Vista machine, it will be some hours yet before I can do any further tests or investigation. |
||||||||||||||
|
|
|||||||||||||||
|
Doon
Guest
|
Aha. Lets blame Chris. He's 100% certain this meddling is the right thing to do.
http://channel9.msdn.com/forums/TechOff/254531-Undo-auto-program-compatibility-in-Vista/ |
||||||||||||
|
|
|||||||||||||
|
Doon
Guest
|
In a non-admin account in Vista, testing installers that require admin rights, I found I could produce two different types of results.
The first is a simple non-sandboxie error that says "Error - You must be logged in as an administrator when installing this program." The second is the type that invokes the Sandboxie error 740. In the first case, okaying the error results in the installer quitting, with no input from Sandboxie. In the second case, it's as I've described earlier, error 740 followed by PCA intervention. Info about the particular PCA behaviour: http://www.microsoft.com/indonesia/msdn/appcomp.aspx#appcomp_topic18 In particular, the heading: Detecting program failures while trying to launch installers One final note, this system is Vista Home Premium 32-bit with NO service packs installed. (that may be the key) Running Sandboxie beta 3.39.22 now. |
||||||||||||
|
|
|||||||||||||
|
tzuk
|
I've not had a chance to try this before I wrote to you earlier. But I did do this today and I think I fixed the problem in version 3.39.23. There still isn't elevation for non-Admins, I'm afraid, but at least, this problem should not be there any more. |
||||||||||||||
|
|
|||||||||||||||
|
tzuk
|
tinitus, I've moved your posts to a new topic, here:
http://www.sandboxie.com/phpbb/viewtopic.php?t=6342 |
||||||||||||
|
|
|||||||||||||
|
Doon
Guest
|
Yep! Great work. Start.exe no longer goes into the loop, which was the critical bit. However, the sequence of events I described earlier will still happen, minus start.exe getting stuck in a loop of course. Which is to say, the first time a particular type of installer is run on a non-admin account (in Vista) Sandboxie error 720 will be generated, followed by the unstoppable Program Compatibility Assistant intervention with it's resulting registry keys relating to start.exe and elevatecreateprocess. The end result of all of this now poses no problems for Sandboxie functionality, apart from the fact that your new "friendly" error code 720 ("The requested operation requires elevation.") will only be seen once on a system like mine (thanks to PCA). After that it's automatically back to the old failure messages like "ShellExecuteEx failed; code 1061. The service cannot accept control messages at this time." Which message, I will note, is generally prompted by trying to run something requiring admin privileges on a non admin account, the solution to which is to close Sandboxie Control and restart it by running it "as administrator", and launching the exe through Sandboxie Control. Thanks! Cheers. |
||||||||||||||
|
|
|||||||||||||||
|
tzuk
|
Thank you for helping to figure this out, glad it works fine.
You probably mean 740. That's not actually "my" error code, I don't use this number anywhere.
The problem with elevation from a standard user account is that the actual user changes and this might change the sandbox folder location, C:\SANDBOX\Admin\WhateverBox instead of C:\SANDBOX\StdUser\WhateverBox. In the next version, I will try to improve this aspect. |
||||||||||||||||
|
|
|||||||||||||||||
| Program Compatibility Assistant problem with v.339-21 |
|
||
|


Use the RSS feed to watch this topic for replies