DFS 服务器的 Powershell 脚本未运行

DFS 服务器的 Powershell 脚本未运行

我在 Citrix/2008R2 中有一个应用程序,它充当其他应用程序的用户起点。

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

该脚本是用 powershell 编写的,除其他外,它还根据帐户对象所在的 OU 映射用户驱动器。我必须修改脚本以考虑到那些在登录时必须选择其工作环境的用户,因此不能使用标准登录脚本。

无论如何:我的问题是,当从我的应用程序的 DFS UNC 路径启动脚本时,它无法运行,并要求用户确认其执行。我检查了 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"):

答案1

此 powershell 博客文章详细介绍了 powershell 如何根据 RemoteSigned 执行策略确定脚本是否为远程脚本。我发现,即使将策略设置为“不受限制”,如果 powershell 认为脚本是远程脚本,您仍会收到执行提示。因此,正如 tchester 所说,这可能与您的 IE 安全区域有关。我想我已经解决了 caspol.exe 的类似问题。

这里这是我找到的一些关于如何使用 capol.exe 完全信任共享的说明。我有一段时间没弄这个了,所以请使用 caspol 和 powershell 进行测试,但我非常有信心这将解决您看到的提示问题。

相关内容