我在基于 Windows Active Directory 的网络(带有本地域控制器)中有一个计算机 GPO,该网络当前从\\MYDOMAIN\NETLOGON\...\application.msi
启动时安装应用程序。这适用于我所有在启动时连接网络的机器,但我有越来越多的 Windows 用户通过 VPN 连接,这意味着机器直到用户登录后的某个时间点才连接网络。
在没有任何明显的最佳实践替代方案的情况下,我建议的解决方案是将 复制application.msi
到隐藏的专用文件夹C:\localapps
并从那里安装。
顶级文件夹创建效果很好。复制配置文件效果很好。文件夹树上的继承权限运行良好。不起作用的是application.msi
文件无法复制。
令人沮丧的是,如果我重命名application.msi
为application.msi.zzz
相同的 GPO 可以 - 并且确实 - 非常高兴地将文件复制到本地计算机。
进一步研究,psexec -i -s explorer.exe
给了我一个作为 GPO 的 SYSTEM 帐户运行的资源管理器窗口。事实上,我可以导航到适当的位置,\\MYDOMAIN\NETLOGIN
并且可以从那里复制文件,除非它们被命名为可执行文件或安装程序。文件夹中的所有文件都继承了权限,我已经确认它们是相同的。所有文件都“解锁”。所有文件都具有相同的所有者 ( MYDOMAIN\Administrators
)。我不是试图从网络共享执行 MSI,只是为了复制它。
经验结论:GPO 使用的SYSTEM 帐户无法从共享中复制*.msi
或文件。*.exe
\\MYDOMAIN\NETLOGON\
这似乎不是一个合理的事态,所以我如何让我的 GPO 照application.msi
原样复制,以便下次有机会可以从本地磁盘安装它?
令人尴尬的是,它竟然是我的客户端防病毒软件 ESET Endpoint Security 中的入侵检测系统,它阻止了对它认为不受信任的 SMB 网络连接上的可执行文件的任何访问。
我已经修改了组织策略以禁用域控制器上文件的特定测试(没有一个与任何客户端计算机在同一个 LAN 上),一切看起来都很好。