views:

27

answers:

1

Hi,

I'm having a lot of problems trying to start an application as administrator on an application I'm writing when running it on XP Embedded.

The application runs as the shell for a limited user account and is touch-screen and keyboard-less with one user command being to run the touch screen vendor's calibration tool. This must be run as administrator.

No problem I thought, add user and password information to the ProcessStartInfo and all should be fine. No. The error I get is:

System.ComponentMode.Win32Exception: The specified service does not exist as an installed service.

From some investigation, I've found that:

  • My Process starting code is correct:
    • any application can be started successfully on XP Embedded when run as the limited user
    • any application can be run as Administrator on my own laptop
  • on XP Embedded, any application is regarded as being a service in the same way, including notepad
  • if I attempt to start a program from within process explorer, I simply get "Unable to execute process: Access is Denied"

I'm not an XP Embedded expert in anyways so I'd very much appreciate some help. I suspect that there's a configuration setting that has been set when building the XP image that specifically denies access to process creation and that the errors I'm being reported are actually mis-reports from software that's not assuming XP Embedded error codes.

Unfortunately, the people who make the base image aren't around right now so I can't get the current settings.

Thanks in advance if anyone's ever seen this before!

Kev

A: 

For the record, it turned out that the "Secondary Logon" service wasn't installed in the image.

The code I had reached down eventually into either CreateProcessWithLogonW or CreateProcessAsUser which ultimately depend on this service running. The "specified service" error was spot on, but not about what I thought it was about. No idea why I got that particular error from Process Explorer.

Kev