IIS应用程序获取错误“;加载托管Windows PowerShell失败,错误为80070005“;正在执行powershell,但同一主机上的其他应用程序可以工作吗?

IIS应用程序获取错误“;加载托管Windows PowerShell失败,错误为80070005“;正在执行powershell,但同一主机上的其他应用程序可以工作吗?,powershell,iis,permissions,Powershell,Iis,Permissions,我在同一台Windows 2012 R2服务器(AWS EC2实例)上托管了两个web应用程序。IIS版本8.5.9600.16384 两个web应用都调用相同的库函数,以在C:驱动器上执行相同的Powershell脚本文件。两个web应用程序的应用程序池都在网络服务下运行 但是,只有web应用程序A能够成功执行Powershell脚本。Web应用程序B在执行同一脚本时出现以下错误: I n t e r n a l W i n d o w s P o w e r S h e l l

我在同一台Windows 2012 R2服务器(AWS EC2实例)上托管了两个web应用程序。IIS版本8.5.9600.16384

两个web应用都调用相同的库函数,以在C:驱动器上执行相同的Powershell脚本文件。两个web应用程序的应用程序池都在网络服务下运行

但是,只有web应用程序A能够成功执行Powershell脚本。Web应用程序B在执行同一脚本时出现以下错误:

I n t e r n a l   W i n d o w s   P o w e r S h e l l   e r r o r .    L o a d i n g   m a n a g e d   W i n d o w s   P o w e r S h e l l   f a i l e d   w i t h   e r r o r   8 0 0 7 0 0 0 5 .
80070005表明存在权限问题

我尝试过以下方法,但运气不佳:

  • 让web应用程序B使用与web应用程序A相同的应用程序池
  • 运行procmon.exe并比较A和B生成的条目,没有发现任何差异。对于返回“成功”状态的脚本,A和B都有“进程启动”事件。未找到“拒绝访问”错误
  • 最终失败的“成功”事件示例:

    Event Class:    Process Operation:  Process Start Event Class:  Process Operation:  Process Start Result:   SUCCESS Path:    TID:   3568 Duration:  0.0000000 Parent PID:   1748 Command line:  "powershell.exe" -NoProfile -ExecutionPolicy unrestricted -file "C:\scripts\dostuff.ps1" -arg1 "sometext" Current directory:    c:\windows\system32\inetsrv\
    

    执行Powershell时是什么导致权限问题?

    我找到了一种解决方法,即使用LocalSystem而不是网络服务

    您正在使用哪种应用程序?您能否分享示例代码以再现问题和详细的错误消息?您可以使用进程监视器来检查哪些用户正在尝试访问PowerShell,以便可以分配正确的权限。还有@JalpaPanchal抱歉我忘了这个问题。我找到了一种解决方法,那就是使用LocalSystem而不是网络服务。