我試圖使用不同的用戶(而不是服務用戶)從C#服務運行djoin.exe
工具和System.Diagnostics.Process
。不能以不同的用戶身份運行C#進程
該過程返回代碼-1073741502
。
在事件日誌中我可以看到:
應用程序彈出:djoin.exe - 應用程序錯誤:應用程序 無法正常啓動(0xc0000142)。單擊確定關閉 應用程序。
沒有stderr或stdout。
這裏是我使用的工藝配置:
ProcessStartInfo startInfo = new ProcessStartInfo
{
Arguments = "/Provision /Domain domain.com /Machine PC12 /SaveFile NUL /printblob",
WorkingDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
FileName = "djoin.exe"
UseShellExecute = false,
RedirectStandardError = true,
RedirectStandardInput = true,
RedirectStandardOutput = true,
CreateNoWindow =true,
Domain = "domain.com",
UserName = "other-user",
Password = "***"
};
if (username!=null)
{
startInfo.Domain = domain;
startInfo.UserName = username;
startInfo.Password = ToSecureString(password);
}
p = new Process { StartInfo = startInfo };
p.Start();
當使用RUNAS
命令,一切工作正常。
什麼問題?
這是什麼版本的Windows?而且,你的應用程序是否擁有更高的特權 – 2014-09-28 18:40:47
Windows 2008服務器R2。這是一項服務。你是什麼意思提升特權? – Igal 2014-09-28 21:44:21
該程序使用的某個DLL的DllMain()入口點返回FALSE。它不高興,你不知道爲什麼,除非它在應用程序事件日誌中留下消息。不好的可能性你會找到一個。你沒有足夠的旋鈕來調整,儘管你絕對應該嘗試將LoadUserProfile設置爲* true *。請聯繫作者或應用程序的所有者以獲取幫助。 – 2014-09-28 23:41:35