psrkumar
31st January 2005 19:24 UTC
Installation for a pocket pc without Admin privileges
Hi!
The desktop OS I have is Windows XP Pro and I am trying to build an installer that installs the application cab files on to a Pocket PC 2003 device. The application is developed with .NET compact framework in C#.
I was able to get a decent installer working using NSIS with a sample provided at http://www.pocketpcdn.com/articles/multicabinstall.html
Our users (clients) are mostly nurses and most of them do not have admin privileges. The installer that I have right now won't run without admin privileges.
I tried to find out in the help documentation if there was a way to do it and in the archives too but I didn't find much information related to this scenario.
If anyone has any suggestions, resources or keywords that I should be searching with, then please let me know. I can attach the script file that I am using, if it is needed.
Thank you for your time.
Regards,
Raj
kichik
1st February 2005 18:12 UTC
Can you pinpoint exactly what requires admin privileges?
psrkumar
1st February 2005 20:29 UTC
Thank you for responding, Kichik.
In the installer, some registry keys are created in HKLM\software during installation and for uninstallation. I believe the admin privileges are needed for that. After I built the installer with the same script mentioned above and tried to run it with a Standard user account, then I get errors informing that the installer wasn't able to write to the files (eula.txt, readme.html, .ini files or the .cab files). If I run this installer with an administrative account, things go smoothly and the cab files are deployed to the device.
I am attaching the script that I am using for your reference.
Hope I answered your question! Thank you for your time.
Regards,
Raj
psrkumar
2nd February 2005 16:20 UTC
Update
I removed the code creating or deleting the registry keys. Instead of using ProgramFiles folder for putting the files, I am using SetOutPath "$TEMP"
Now the installer goes on fine till it comes to the point where it is trying to execute CEAppMgr.exe from the Programfiles folder with a .ini file as input. This .ini file is put in the Temp folder.
The installer fails at this point. I was running the installer with a 'User' permission (no admin privileges).
kichik
3rd February 2005 18:44 UTC
It's true that a normal user can't normally write to HKLM, but the errors probably came from trying to install to Program Files.
What is the error you get from CEAppMgr.exe? Can you run it separately without errors?
psrkumar
3rd February 2005 19:57 UTC
The error I get is titled CEAPPMGR.exe - "The application failed to initialize properly (0xc0000142). Click OK to terminate the app."
I used the tools Regmon and Filemon from Sysinternals.com to track what was happening when running the installer. It seems CeAppMgr tries to create some temporary file in the \WINDOWS directory and since the user doesn't have enough permissions, the error appears. The filename looked like c:\WINDOWS\$_hpcst$.hpc. I have no idea what that is.
From all this, I am inclined to believe that CEAppMgr cannot be run without Admin privileges. For now, we will go with admin installer and maybe later on we will make any changes.
For the record, NSIS is great! I haven't used a lot of features yet but it is nice.
Thank you for your time.
Regards,
Raj