Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 4640
  • Last Modified:

Win32Exception: Unknown error (0xffffffff) when trying to run process.start()

the following are lines I'm running in an application:
this code is running in a service. when the service is started using the  LSA (local system account) I get the following exception:
System.ComponentModel.Win32Exception: Unknown error (0xffffffff)
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at ePcontrol.FrmControlCommands.ControlTimer_Tick(Object sender, EventArgs e)
=================================
System.Collections.ListDictionaryInternal
=================================
Unknown error (0xffffffff)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

NO PROBLEM when running the service logged on using a user with domain admin credentials.
try
                        {
                            //Installing the service
                            ProcessStartInfo InstallService = new ProcessStartInfo(Application.StartupPath + "\\ePagntSv.exe", " -i");
                            InstallService.WindowStyle = ProcessWindowStyle.Hidden;
                            Process pInstallService = Process.Start(InstallService);
                            pInstallService.WaitForExit();
                            InstallService = null;
                        }
                        catch (Exception ex)
                        {
                            _DoneChecking = "Yes";

                            StreamWriter SaveEx = File.AppendText(Application.StartupPath + "\\ePcontrolEx.txt");
                            SaveEx.WriteLine(ex.GetBaseException());
                            SaveEx.WriteLine("=================================");
                            SaveEx.WriteLine(ex.Data);
                            SaveEx.WriteLine("=================================");
                            SaveEx.WriteLine(ex.Message);
                            SaveEx.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                            SaveEx.Flush();
                            SaveEx.Close();
                        }

Open in new window

0
OrenRozen
Asked:
OrenRozen
  • 3
  • 3
1 Solution
 
ricovoxCommented:
Try adding the following lines BEFORE Process.Start

InstallService.CreateNoWindow = True;
InstallService.UseShellExecute = False;
0
 
ricovoxCommented:
If that doesn't work, perhaps you can try to execute a different exe (such as calc.exe etc.) to see if this has to do with security restrictions on the exe you are trying to launch.
0
 
OrenRozenAuthor Commented:
Thanks for the help.

I'll be able to check only after the weekend.

I'd also appreciate if you'll explain why you think the following lines should work/
InstallService.CreateNoWindow = True;
InstallService.UseShellExecute = False;

I think its something to do with credentials because when I set the service to log on using a user with domain admins credentials, the application is working with no problem.
Its something with the LSA credentials but I don't know where.

0
NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

 
ricovoxCommented:
I think that you are right about the credentials. And we might have more troubleshooting to do before this question is resolved.

The reason I suggested those two lines are the following:

//This makes sure that no UI is produced. Sometimes services that launch programs with a UI can cause errors if the service is not allowed to interact with the desktop. This is probably NOT that important, but is worth a try. However I believe launching the process as "Hidden" has the same effect.
InstallService.CreateNoWindow = True;


//This line causes the process to be started DIRECTLY from the exe you specify, instead of by using the shell. This will only matter if there are security restrictions against using the shell to launch files.
InstallService.UseShellExecute = False;

Like I said, it is possible that neither line will help. But we can at least safely and easily eliminate them as possible issues.

I think the more important test is trying to execute different exes to see if it is a permissions issue.
0
 
OrenRozenAuthor Commented:
I did try these lines and it didn't solve the problem. what strange is that it is working on some servers but I get the problem on all other servers (this is a data-center of 450 servers).

any way, to solve the problem we've made a workaround because the customer got upset with this problem.
as this code is set to run on a remote server, what we did was to create and start the service from a management server to the remote server.
again, we didn't solve the problem but created a workaround. which I think is better to avoid the same issue at other customers.

I appreciate your help, but I don't have any way to continue and check this issue.
0
 
OrenRozenAuthor Commented:
no solution was provided.
a workaround was created
0

Featured Post

Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

  • 3
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now