我試圖從我的Asp.Net Web應用程序執行PSExec
以連接到遠程服務器。不知何故,它給"Access Denied Error -5"
沒有設置憑據,並通過在PSEXEC命令中設置憑據"2250 Network connection could not be found"
。我是服務器上的管理員,我啓用了Windows authentication and Asp.Net Impersonation
(IIS7.5
)。更有趣的是,當我嘗試從console application
或甚至僅使用command prompt
執行此操作時,它只是正常工作。我正在嘗試做一個ping操作作爲測試。從Asp.Net Web應用程序使用sysinternals PSExec執行腳本
這裏是我的代碼片段: -
var startInfo = new ProcessStartInfo{
CreateNoWindow = true,
UseShellExecute = false,
FileName = FilePath,
Arguments = CommandArgs
}
Process vsCommandProcess = Process.Start(startInfo);
vsCommandProcess.WaitForExit();
var exitCode = vsCommandProcess.ExitCode;
if (vsCommandProcess.ExitCode != 0)
{
...rest of the code
這裏: -
FilePath --> C:\pstools\psexec.exe
Arguments --> \\servername -accepteula -u domain\userName -p password ipconfig (1)
\\servername -accepteula ipconfig (2)
(1) Gives Error 2250 (2) gives Error 5
同樣的命令和代碼與控制檯應用程序工作。所以我相信這絕對是與Asp.net應用程序有關,它不能將憑證帶到機器的遠程。我的事件嘗試startInfo.LoadUserProfile
但無濟於事。
感謝您的幫助。我試圖尋找類似的問題,但無法找到我面臨的問題的解決方案。
1如果它與控制檯一起使用,而不是asp Web應用程序,這聽起來像是一個安全問題。 2你是否還檢查.net版本是否正確?嘗試使用.net 2.0在IIS上運行應用程序池(我今天遇到了這個問題)。 – gartenabfall 2013-04-30 19:05:53
我正在使用dotnet 4.0版。是的,它似乎更多的身份驗證令牌沒有結轉...... – PSL 2013-04-30 19:07:20
IIS是否以與命令提示符相同的用戶權限運行? – Powerslave 2013-05-09 21:28:05