Asp.net IIS无法运行";净使用;批处理文件中的命令

Asp.net IIS无法运行";净使用;批处理文件中的命令,asp.net,Asp.net,我们有一个CMS应用程序,过去能够运行批处理文件中的所有命令;然而,它在过去一周一直在失败 为了进行测试,我们修改了批处理文件中的内容,如下所示: 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

我们有一个CMS应用程序,过去能够运行批处理文件中的所有命令;然而,它在过去一周一直在失败

为了进行测试,我们修改了批处理文件中的内容,如下所示:

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 start>c:\log.txt”,但随后失败

两台计算机都是域的一部分 我们已经通过使用不同的域名,甚至是域管理员帐户来测试应用程序。 我们在网站中使用了模拟(在cms网站的web.config文件中指定)以及在IIS目录安全中使用域管理员帐户。 从网站运行批处理文件时,whoami命令的结果是nt/network service。我们几乎什么都试过了

我们将非常感谢任何人能够提供的任何见解和帮助


谢谢。

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

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

就在现场。在使用域凭据创建新的应用程序池后,我能够从IIS运行批处理文件。现在剩下的唯一奇怪的事情是,即使使用nt/网络服务,程序也可以运行。。。网络服务以\$的形式运行,其中计算机加入域时提供计算机帐户。使用此帐户,计算机应该能够连接到其他服务器中的共享,除非此计算机帐户出现严重问题,或者有策略阻止此操作-这听起来像我们正在经历的情况。谢谢