Active directory 无法使用Active Directory域服务运行GPO登录脚本

Active directory 无法使用Active Directory域服务运行GPO登录脚本,active-directory,group-policy,Active Directory,Group Policy,我刚刚将我们公司的域控制器从NT 4.0升级到Windows 2008 Server。我使用了就地升级路径,首先从NT 4.0升级到Windows 2003 Server,然后从2003 Server升级到2008 Server。最初的NT4.0域名是公司名称。新域是Company.local。我已确认用户和计算机信息已正确迁移,新域已运行一周,问题很少 我现在遇到的问题是为一组用户设置GPO用户登录脚本。我相信我已经正确设置了GPO,但是在登录后,脚本不会在客户端上执行 经过调查,我注意到如果

我刚刚将我们公司的域控制器从NT 4.0升级到Windows 2008 Server。我使用了就地升级路径,首先从NT 4.0升级到Windows 2003 Server,然后从2003 Server升级到2008 Server。最初的NT4.0域名是公司名称。新域是Company.local。我已确认用户和计算机信息已正确迁移,新域已运行一周,问题很少

我现在遇到的问题是为一组用户设置GPO用户登录脚本。我相信我已经正确设置了GPO,但是在登录后,脚本不会在客户端上执行

经过调查,我注意到如果我直接导航到域控制器,我可以在登录后从客户端手动执行脚本(批处理文件): \\ServerName\SysVol\Company.local\Policies\{GUID}\User\Scripts\Logon

但是,如果我的理解正确,客户端在执行登录sript时不会使用此路径,而是使用域(林?)名称作为源(在这种情况下,域和林名称相同): \\Company.local\SysVol\Company.local\Policies\{GUID}\User\Scripts\Logon

从客户端手动执行此批处理文件时,我会收到一个“打开文件-安全警告”对话框,声称客户端无法验证发布服务器。上面的两条路径本质上是同一个地方,只是通过不同的路径访问


知道为什么客户端在通过\\Company.local而不是\\ServerName访问时不信任来自其自己域控制器的内容吗?有没有其他地方我应该寻找可能的原因?

安全警告很可能是在转移视线。我们可以讨论它出现的原因,但我更感兴趣的是首先讨论登录期间执行的脚本

使用应执行脚本的用户帐户登录到客户端计算机并运行“策略结果集”工具(从空白MMC中,添加“策略结果集”管理单元,然后突出显示并右键单击范围窗格中的“策略结果集”,并选择“生成RSoP数据…”接受所有默认值…)

我假设您没有使用脚本上的NTFS ACL或GPO本身上的ACL

我的直觉告诉我这是一个GPO范围问题。收集完策略后,请查看脚本是否被放置在要为用户执行的脚本列表中。收集RSoP数据后,右键单击范围窗格中的“用户配置”节点,并检查与用户关联的GPO列表。您是否在该列表中看到包含您的脚本的GPO

假设您确实看到GPO正在应用,并且确实看到了要为用户执行的登录脚本中列出的脚本,接下来我将转到应用程序事件日志,查看USERINIT是否在登录期间记录了有关执行脚本问题的任何信息

假设您没有看到您的GPO应用于用户,我会考虑您将GPO链接到与用户帐户相关的何处(这就是我提到的“范围界定问题”)。GPO必须链接到用户对象所在的OU、用户对象所在的OU的父OU、域的顶部或与已分配客户端计算机IP地址的IP子网关联的站点对象


如果这没有意义,而且你仍然看不到你所期望的,那么就发布一些有问题的对象的逻辑拓扑的描述——例如,一个树形图,显示域和包含有问题的用户对象的任何子OU,以及一个关于你链接GPO的位置的注释。

我最近遇到了完全相同的问题。我确实发现脚本运行了,但“看不见”。GPO上有一个选项,可以通过转到“管理模板”、“系统”、“脚本”以“可见”方式运行脚本。

你把它钉在了头上。安全警告具有误导性,而真正的问题是您所建议的GPO范围问题。