无法使用powershell脚本从IIS服务的远程目录复制文件

无法使用powershell脚本从IIS服务的远程目录复制文件,powershell,iis,Powershell,Iis,我有一些文件需要从服务器a复制到服务器B。服务器B上运行着一个IIS服务,它调用本地powershell脚本来执行所需的操作 当从命令行执行powershell脚本时,它会按预期工作,并且在IISExpress中执行时也会工作。但是,当从IIS上托管的服务调用时,不会报告任何错误,但也不会复制任何文件 powershell脚本基本上调用Copy Item-Path\\Server A \-目标c:\ 谢谢大家! IIS默认作为没有网络权限的本地服务帐户运行。您可能无法看到错误消息,因为Power

我有一些文件需要从服务器a复制到服务器B。服务器B上运行着一个IIS服务,它调用本地powershell脚本来执行所需的操作

当从命令行执行powershell脚本时,它会按预期工作,并且在IISExpress中执行时也会工作。但是,当从IIS上托管的服务调用时,不会报告任何错误,但也不会复制任何文件

powershell脚本基本上调用
Copy Item-Path\\Server A \-目标c:\


谢谢大家!

IIS默认作为没有网络权限的本地服务帐户运行。您可能无法看到错误消息,因为Powershell脚本没有将其输出回显到HTTP响应

要解决此问题,您可以在IIS中创建一个新的应用程序池,并通过在AppPool的高级设置->标识中输入网络凭据来设置标识。 然后右键单击虚拟目录并选择“添加应用程序”,使您的服务在该应用程序池中运行。将出现一个对话框,您可以在其中选择新的应用程序池

注:

  • 当网络密码更改时,您在应用池中输入的凭据不会更新,因此您应该使用密码不会过期的域帐户
  • 您不应该使用您自己的帐户,因为如果您的密码更改并且您的服务被调用,它可能会被锁定
  • IIS服务器上的任何管理员都可以读取密码
IIS中的服务帐户是否有权访问源文件夹和目标文件夹?检查正在运行服务的应用程序池的标识。以该标识打开powershell会话,并尝试运行复制项脚本,以查看是否存在任何权限错误。@RichMoss我是否必须创建一个对两台服务器都具有权限的网络用户?是的,服务标识可能是服务器的本地标识,除非您显式将该标识设置为域帐户。这是推测性的-您只能通过以服务帐户的形式运行脚本来确定发生了什么。@RichMoss,是的,确实有效。尽管管理密码会很麻烦,谢谢!