我想从我的asp.net应用程序在域上的其中一台机器上运行bat脚本。具有批处理脚本的计算机是临时存储计算机,并且脚本将其与永久存储计算机同步。那么,这样做的最佳方式是什么?
我尝试的是使用PsExec在远程计算机上运行脚本。我创建了一个进行PsExec调用的进程,它确实很好地完成了它的工作。但是,由于ASP.NET工作线程在具有受限权限的ASP.NET帐户下运行,因此我必须在PsExec调用中对我的域用户凭据进行硬编码,这是我不喜欢做的事情。
有没有办法克服这个问题,或者我可以尝试其他一些方法?
...谢谢
答案 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辅助进程的上下文中运行,而不是在模拟的上下文中运行。“