LoRd_MuldeR
2nd June 2009 23:45 UTC
Windows 7 - erroneous installer warning
Hi!
I tested my installer with Winodws 7 RC-1 and I noticed that a few moments after my installer exists, Windows 7 will display a warning. That warning claims that the installer probably has failed! That's complete nonsense, as the installer obviously did complete successfully. So I assume it's a bug in Windows 7 and it can be ignored safely. But it still may scare my users! So I wonder: What can I do to convince Windows 7 that my installer actually did complete successfully? I already request "admin" execution level. Anything else I need to add?
BTW: Another problem. How can I launch my application, but *without* admin rights? I know there is the UAC plugin, but I'm looking for a simpler method. I already tried to launch a second installer from my main installer and I explicitly limited the rights of that second installer to "user". But even when launching my application from that second non-admin installer, it still somehow was running with "admin" rights, as the main installer. This sucks, because it disables Drag&Drop and causes other random problems. Any suggestions?
My complete installer script is here:
http://pastie.org/498438
Cheeeeeeers
MuldeR
redxii
3rd June 2009 00:42 UTC
NSIS has to be updated to write a manifest file correctly for 7. sourceforge.net/tracker/index.php?func=detail&aid=2725883&group_id=22049&atid=373085
As for non-admin, your script requires admin privileges. For example: 'WriteRegStr HKLM'
HKLM requires admin privileges to write to. You can try SHCTX or HKCU instead. Writing to $PROGAMFILES also requires admin. You can take a look at multiuser.nsh.
LoRd_MuldeR
3rd June 2009 00:50 UTC
Originally posted by redxii
NSIS has to be updated to write a manifest file correctly for 7. sourceforge.net/tracker/index.php?func=detail&aid=2725883&group_id=22049&atid=373085
Thanks for info ;)
I hope NSIS will be fixed for Windows 7 soon, so I can make the Windows 7 people happy too :D
Originally posted by redxii
As for non-admin, your script requires admin privileges. For example: 'WriteRegStr HKLM'
HKLM requires admin privileges to write to. You can try SHCTX or HKCU instead. Writing to $PROGAMFILES also requires admin. You can take a look at multiuser.nsh.
I'm aware that my Installer needs admin rights. And that's why I request the "admin" execution level. But at the end of the installer, I want to launch the application that has just been installed. The application itself should run with normal "user" rights. Unfortunately when launched by the "admin" level installer, the application will run at that higher security level too. That causes a few nasty problems, such as Drag&Drop being disabled and other random glitches. So I look for a way to launch the app as the normal user from my admin-level installer...
redxii
3rd June 2009 01:07 UTC
What about this? nsis.sourceforge.net/UAC_plug-in#Launching_an_application_with_user_privileges
!define MUI_FINISHPAGE_RUN_FUNCTION ExecAppFile
Function ExecAppFile
UAC::Exec '' '"$INSTDIR\${APPFILE}"' '' ''
FunctionEnd
I don't believe you will be able to do it without a plugin because the application launched from MUI_FINISHPAGE_RUN will inherit admin privileges and NSIS hasn't done anything to automatically lower the privileges like in inno setup.
Anders
3rd June 2009 05:03 UTC
Once you are elevated, you can't go back, so I don't know what you think Inno is doing
redxii
3rd June 2009 06:57 UTC
Well, no, I don't think that, it is that, in 5.2.0 or later. However it does it, the process spawned from [Run] runs as non-admin after the setup having admin privileges.
pengyou
3rd June 2009 09:08 UTC
Originally posted by redxii
However it does it, the process spawned from [Run] runs as non-admin after the setup having admin privileges.
I use the UAC plugin in my NSIS installers to do that.
LoRd_MuldeR
3rd June 2009 10:11 UTC
Thanks. I will need to add yet another plugin to my installer then ;)
How I love UAC...