我正在使用 WBADMIN 将多个客户端备份到某些 Synology NAS 使用 SMB 发布的共享中。该 NAS 集成在我的 Server 2019 AD 中,并且备份的 Windows 客户端是同一域的一部分。我的方法是在 AD 中为每个客户端创建一个特殊的备份用户,并仅为该用户配置对共享的访问权限。之后,我在 Windows 客户端的任务计划程序中创建一个自定义任务,以执行 PowerShell 脚本,该脚本包装了 WBADMIN 的执行,并包含一些日志管理、发送邮件和类似的小内容。
重要的是,创建的任务仅使用专门为备份这一个客户端而创建的域用户的凭据执行。所以最后我在 AD 中拥有用户backup_host1_wib
等backup_host2_wib
。所有这些用户都已经是域控制器上组备份操作员的一部分,因为他们需要特殊权限才能由任务调度程序执行,访问要备份的文件等。问题是,即使这些用户包含在域控制器上的该组中,客户端的任务调度程序也会拒绝执行该任务,因为缺乏运行该任务的权限。
我需要做的是让每个主机的每个备份用户也成为客户端本地组备份操作员的成员。任务成功执行后,WBADMIN 创建映像,一切按预期运行。不过,因为我已经将这些用户添加到域控制器上的备份操作员,所以我原本希望这个组成员身份也能传达给各个客户端,这样我就不需要在每个客户端上手动分配组成员身份了。
那么,这种特殊组成员身份不会发布给个人客户端是设计使然,还是我做错了什么?在我测试时,AD 上的组成员身份可能还没有发布给我的测试客户端吗?虽然我想我甚至重新启动了它,但这并没有改变任何东西。
我是否真的需要创建一个 GPO 来让每个特殊备份用户获得每个相应客户端的预期权限,如下文所述?
对我来说没有太大意义,因为提到的 GPO 已经包含了组备份操作员,而添加到该组对我来说似乎更容易。
谢谢!
答案1
是的 - 众所周知,域的“备份操作员”组与每台计算机的“备份操作员”组并不相同。正如域的“管理员”组或“远程桌面用户”组不会自动与相关的本地组“同步”。它们是存在于不同范围内的同名对象。
“备份操作员”是所有计算机上的内置本地组。由于域控制器实际上没有本地组,因此域中的 BUILTIN\Backup Operators 组实际上是所有域控制器的“本地”备份操作员组。事实上,“BuiltIn”容器中的所有组本质上都是林中第一个域控制器首次升级时存在的原始本地组。链接文章中的默认值是指具有所述用户权限的本地组。
我会重新考虑你目前的做法。你利用域备份操作员组中的众多帐户(由于他们拥有备份特权)有效地扩大了针对你的域和敏感数据的攻击媒介;这些帐户中的每一个(其密码现在存储在你的整个网络中)都能够远程连接到域控制器,执行备份(获取 ntds.dit 的副本以进行离线分析和破解)并恢复您的 Active Directory - 或者可能是已损坏或受损的副本。
我建议立即从域组中删除这些帐户。
实现您所寻找的目标的一种方法如下:
- 创建一个新的安全组“local-backup-operators”或其他
- 将备份用户添加到此新域组
- 使用 GPO(受限组)或 GP 首选项确保“local-backup-operators”是每台计算机上本地“备份操作员”组的成员。
如何使用每台机器的专用用户帐户更轻松地实现这一点(我的看法)。
- 为您想要备份的每台计算机创建一个用户 - 随意命名,但对于 SERVER01 上的这个示例,创建一个用户“DOMAIN\bkp_SERVER01”
- 在新的或现有的组策略中创建“本地用户和组”组策略首选项。
- 操作:更新;组:备份操作员;成员:添加 - “bkp_%ComputerName%(字面意思是使用环境变量)
- 利润。组策略将在运行时扩展变量并搜索与该名称匹配的用户/组并将主体添加到本地备份操作员组。
警告:如果指定的帐户不存在,您将在计算机日志中收到警告事件。要么从 GPO 中排除这些计算机,要么只处理这些事件。
样本: