将登录脚本集中存储在\\DOMAIN\Netlogon
或默认存储在策略文件夹中是否是最佳做法,例如\\DOMAIN\SysVol\DOMAIN\Policies\{DE22B6FB-315E-4C55-BF06-A7709913CD9E}\User\Scripts\Logon
?
选择一个位置而不是另一个位置会产生什么影响(如果有的话)?
我倾向于将它们全部保存在 Netlogon 中,以便于访问/审查......
答案1
这默认位置用户登录脚本是 NETLOGON 共享,默认情况下,它会复制到林中的所有 DC,并且物理位置如下:
%SystemRoot%\SYSVOL\sysvol\<domain DNS name>\scripts
。
或者
%SystemRoot%\SYSVOL_DFSR\sysvol\<domain DNS name>\scripts
(适用于基于 DFS 的 FRS,因为从 Server 2012R2+ 开始建议使用此方法)
如果你设置用户登录脚本(ADUC > 用户 > 属性 > 登录 > 登录脚本 > hello.cmd),它是从 NETLOGON 执行的。
“官方”最佳做法是:
- 如果您通过 GPO 设置,则将它们与 GPO 一起存储。
- 如果您将其设置为 AD 中的用户属性,则将它们存储在 NETLOGON 中。
答案2
两个位置在域控制器之间同步,因此对我来说这只是个人选择。
我个人的看法是,当 GPO 数量超过一定数量后,将所有内容都放在 netlogon 中会很难管理。(例如,当您删除 GPO 时,脚本不会被删除)
答案3
不确定这是不是“最佳实践”,但我看到一些博客文章推荐这样做,我更喜欢它:
我们有一个文件共享,其中包含 GPO 的所有支持文件,包括脚本。所有脚本都已签入版本控制。
文件共享是使用 DFS 设置的,因此它是 \domain.com\DFS\GPO-Files
该脚本位于子目录 \domain.com\DFS\GPO-Files\Scripts 中
在 GPO 中,您调用脚本“powershell.exe”,并对参数执行 -File PathToScript。
我喜欢这种方法,因为 GPO 文件和脚本位于众所周知的位置,而不是埋在具有 GUID 名称的文件夹中。
它还允许更好地控制 powershell.exe 的调用方式,就像 ExecutionPolicy 一样。