WIN10 wbadmin.exe as a C# process

19andreas61
19andreas61 used Ask the Experts™
on
I try to start wbadmin as a process via C#. I've installed WIN10.
If I try a File.Exist(@"c:\Windows\System32\wbadmin.exe") the answer is false (not found or not the correct priviliges).
A manifest with <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /> is included and the security request pops up at the program start.

With WIN7 it runs without a problem.

Is there any idea to solve the problem?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Top Expert 2016

Commented:
if it is a 64-bit windows and wbadmin.exe is a 32-bit executable, the correct path is

c:\windows\syswow64\wbadmin.exe

in system32 folder there are only 64-bit executables.

Sara

Author

Commented:
Hi Sara,

thanks for the information, but ...
Yes it is 64-Bit, but at c:\windows\syswow64\ is no wbadmin.exe.

The c:\Windows\System32\wbadmin.exe works fine at an Administrator-CMD. I have another place at
C:\Windows\WinSxS\amd64_microsoft-windows-blb-cli-main_31bf3856ad364e35_10.0.10240.16384_none_53554ecf29b30305
but there I get the error
"Im Cache des Ressourcenladeprogramms ist kein MUI-Eintrag geladen." (it is a german system)

The basic problem or question is: What can I do that File.Exist(@"c:\Windows\System32\wbadmin.exe") can see the file, like I can see it at the file-explorer?

Thanks
Andreas
Top Expert 2016
Commented:
i assume that windows "translates" c:\Windows\System32 to c:\windows\syswow64 automatically if you call it from a 32-bit executable.

you could test whether my assumption is right by copying wbadmin.exe to syswow64 folder.

if the file could be found that way, it is not a solution but we would know where the problem is.

can you post the code where you try to execute the wbadmin.exe? in my opinion it is not possible to invoke a 64-bit program from a 32-bit executable directly. you would need to invoke a 64-bit assembly first (for example cmd).

the WIN7 was it 64-bit as well?

Sara
Top Expert 2016

Commented:
i found the wbadmin.exe in my system32 folder as well. i think you don't need to check existence of the executable by a File.Exist since wbadmin comes with the operation system.

using System.Diagnostics; 

....

Process.Start("wbadmin.exe");

Open in new window


the operation system should find wbadmin.exe since it is in the standard path.

Sara
Hi Sara,

thanks again. You pushed me in the right direction.

I fixed it:
At the VisualStudio - Project Property - Build - Platform target
there "Any CPU" but I've to take away the hook at "Prefer 32-bit"

After this my Program can see the wbadmin at system32 and it works!

Thank you very much
Andreas

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial