与此处有同样的问题: Run PowerShell script from ASP.NET 我试图通过asp.net网页在服务器上运行powershell脚本。它适用于本地服务器,但不能远程工作。远程它不会返回任何内容,就好像脚本有效一样。
我尝试使用icacls.exe修改权限
icalc.exe c:\test.ps1 /grant "IIS AppPool\DefaultAppPool:(OI)(CI)F"
这没有效果。当我阅读权限是什么时:
icalcs c:\test.ps1
NT AUTHORITY\Authenticated Users:(I)(M)
NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
BUILTIN\Users:(I)(RX)
即使在我尝试修改它之后,我总是得到相同的回报。 IIS AppPool \ DefaultAppPool在哪里?
更新 我一直在使用一个只打开记事本进行测试的脚本。当我在本地运行时,会弹出记事本。远程似乎没有任何事情发生,但后来我注意到在任务管理器中有大量的记事本运行实例。所以它似乎工作但不是我的预期。我正在尝试完成的最终功能是添加最小的远程功能。我也从我的网络服务器上播放电影,能够通过我现有的网络界面远程访问某些功能会很不错。因此脚本必须在当前用户上运行。我想这可能更适合使用WCF或其他类型的架构,但只是将我的Web界面用于所有内容会很好。
答案 0 :(得分:0)
确保已在远程服务器上更新PowerShell脚本执行以允许脚本执行。如果Web服务器以32位运行,则在提升(管理)模式下在计算机上启动x86 PowerShell控制台并执行:
Set-ExecutionPolicy RemoteSigned
如果网页以64位运行,请使用64位高架PowerShell控制台执行相同操作。