Late reply, quick note to others baffled searching for an answer.
Just ran into the same behaviour. Took me a while to figure out what was happening, thinking this had something to do along the line of starting the process without elevated rights, running the executable from a less-trusted file share or anything like that. The answer was less obvious than expected:
You are running your code as a 32 bit application in a 64 bit Windows Server environment.
The operating system uses the %SystemRoot%\system32 directory for its 64 bit executables. When executing 32 bit applications, WOW64 (Windows on Windows) redirects requests for DLLs from that directory to %SystemRoot%\sysWOW64. The process you're spawning should search for its files in a different location. A couple of suggestions when you can't find system DLLs you know are there:
Solution 1. Build your program 64 bit.
Solution 2. @"%WINDIR%\Sysnative\ServerManagerCmd.exe"
Solution 3, @"%WINDIR%\SysWow64\ServerManagerCmd.exe"
Solution 4. Start %windir%\SysWoW64\cmd.exe; set PATH=%systemroot%\SysWOW64;%PATH%;
Regards,
Patrick de Kleijn