DFS服务器的Powershell脚本没有运行

我在Citrix / 2008R2中有一个应用程序,可以作为其他应用程序的用户起点。

我最近不得不修改这个应用程序,以更深入地与活动目录集成。 作为此过程的一部分,应用程序有时必须直接运行用户login脚本(而不是依靠login过程来执行此操作)。

该脚本是用PowerShell编写的,除此之外,还根据帐户对象所在的OU来映射用户驱动器。我必须修改脚本以考虑在login时必须select工作环境的用户,因此不能使用标准login脚本。

无论如何:我的问题是,当从我的应用程序的DFS UNCpath启动脚本时,它无法运行,要求用户确认其执行。 我检查了32位和64位PowerShell的执行策略,他们是这样的:

Scope ExecutionPolicy ----- --------------- MachinePolicy Unrestricted UserPolicy Unrestricted Process Undefined CurrentUser Undefined LocalMachine Unrestricted 

我确定应用于用户和计算机的组策略应允许所有脚本运行: GPO细节

现在,我已经采取了将脚本复制到临时文件夹,并从那里运行它(它工作正常),但它是唠叨我:我看不出任何逻辑的原因,为什么PowerShell会拒绝执行该脚本。

任何人都知道这里发生了什么?

编辑

为了澄清,我正在遇到这里常见的PowerShell安全警告:

 Security Warning Run only scripts that you trust. While scripts from the Internet can be useful, this script can potentially harm your computer. Do you want to run \\xxxx\xxxx\xxxx\test_powershell.ps1? [D] Do not run [R] Run once [S] Suspend [?] Help (default is "D"): 

这个PowerShell博客条目详细介绍了PowerShell如何确定RemoteSigned executionpolicy脚本是否是远程的。 我发现,即使策略设置为Unrestricted,如果powershell认为脚本是远程的,仍然会得到提示执行。 正如tchester所说,这可能与您的IE安全区有关。 我想我解决了与caspol.exe类似的问题。

以下是关于如何使用capol.exe完全信任共享的一些说明。 一段时间以来我一直没有搞砸,所以请用caspol和powershelltesting一下,但是我非常有信心,这样可以解决你所看到的提示问题。