2010-08-27 130 views
0

我们有一个CMS应用程序,它曾经能够运行批处理文件中的所有命令;然而,它在上周一直在失败。IIS无法在批处理文件中运行“net use”命令

为了进行测试,我们在批处理文件修改的内容是这样的:

echo starting > c:\log.txt 
whoami >> c:\log.txt 
net use Z:\ \\192.168.2.123\share\ password /user:userWithAdminRightsInTarget  
copy c:\aTestFile.txt Z:\Success.txt 
net use Z:/DELETE 

比方说ComputerSource就是IIS托管CMS的网站,并在批处理文件所在的计算机,ComputerTarget是计算机,我想要将文件复制到。

如果我通过双击手动运行该批处理文件,所有命令都会成功运行;在c:\ log.txt中whoami的结果显示登录到服务器的用户帐户,并且该文件已成功复制。

但是,如果我从CMS网站运行批处理文件,它将执行第一行“echo starting> c:\ log.txt”,但之后失败。

这两台社交网络都是域名的一部分 我们使用不同的域名甚至域管理员帐户测试了应用程序。 我们在网站中使用模拟(在cms网站的web.config文件中指定)以及在IIS目录安全性中使用域管理员帐户。 批处理文件从网站运行时的whoami命令的结果是nt/network服务。我们几乎尝试了几乎所有的东西。

我们将非常感谢任何人都可以提供的见解和帮助。

谢谢。

回答

1

您需要将连接到此特定网站的应用程序池的用户身份更改为具有这些权限的帐户。基本上,您在web.config中模拟的相同帐户也必须指定为网站应用程序池的运行身份。

+0

就在当场。使用域凭据创建新的应用程序池后,我能够从IIS运行批处理文件。现在剩下的唯一奇怪的事情是,该程序甚至使用nt /网络服务运行......网络服务运行如下: \ $ - 计算机加入域时给出计算机帐户。使用这个帐户,计算机应该能够连接到其他服务器的共享,除非这个计算机帐户上的某些事情真的很糟糕,或者政策阻止了这一点 - 这听起来像我们正在经历的。非常感谢 – 2010-08-27 17:35:32

0

或者可以使用Runas命令调用批处理文件,以便您可以指定将模拟的用户?