ASP.NET - 在另一台机器上运行bat脚本

时间:2009-01-26 15:28:45

标签: asp.net scripting batch-file

我想从我的asp.net应用程序在域上的其中一台机器上运行bat脚本。具有批处理脚本的计算机是临时存储计算机,并且脚本将其与永久存储计算机同步。那么,这样做的最佳方式是什么?

我尝试的是使用PsExec在远程计算机上运行脚本。我创建了一个进行PsExec调用的进程,它确实很好地完成了它的工作。但是,由于ASP.NET工作线程在具有受限权限的ASP.NET帐户下运行,因此我必须在PsExec调用中对我的域用户凭据进行硬编码,这是我不喜欢做的事情。

有没有办法克服这个问题,或者我可以尝试其他一些方法?

...谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用< identity impersonate =“true”/>在Web.config中设置以使应用程序在IUSR下运行,或者您可以在身份标记上将用户名/密码设置为您要用来运行BAT文件的帐户。

我之前在http://www.aspdev.org/articles/web.config/

找到了有关Impersonate的一些详细信息

但我确信快速网络搜索会在Impersonate上找到更多信息。

答案 1 :(得分:0)

上面的答案不起作用。默认情况下,将在ASP.NET帐户下生成新进程。

http://support.microsoft.com/kb/889251

“要生成在模拟用户的上下文中运行的进程,您不能使用System.Diagnostics.Process.Start方法。这是因为在ASP.NET中,模拟是在线程级别执行而不是在因此,从ASP.NET生成的任何进程都将在ASP.NET辅助进程的上下文中运行,而不是在模拟的上下文中运行。“