我正在实施 DNS 策略,为某些任务编写 PowerShell 脚本,当然我不想以域管理员的身份安排这些任务;我想使用最小权限的服务帐户。
问题是,我似乎无法弄清楚需要什么,以及在哪里。AD 包括该DnsAdmins
组,但这还不够。
DNS 策略组件
DNS 策略本质上有 3 个新元素:
- 区域范围
- 客户端子网
- 政策
区域范围是区域本身的一部分,因此在 AD 集成区域上,它们与区域一起复制。
但是客户端子网和策略未存储在 AD 中,因此它们不会被复制,并且没有目录分区(例如,您可以在其中检查或设置权限)。
示例问题
尝试创建一个客户端子网条目,该条目可以与域管理员帐户配合使用,但却给我一个关于检查内部异常详细信息的神秘错误。
这样做会给我一个 WIN32 1011 错误:
The configuration registry key could not be opened.
谷歌搜索这个错误是相当没用的,而且它从来没有说哪个它是注册表项。
该帐户是普通域用户,但是是域成员DnsAdmins
并且没有其他特殊权限。
该帐户可以读DNS 客户端子网很好。但添加一个会失败。
相比之下,不是 成员的域用户DnsAdmins
无法读取客户端子网条目(权限被拒绝)。
代码
# Read a Client Subnet
Get-DnsServerClientSubnet -cn MyDC -Name 'My_CS_Entry'
# Add a Client Subnet
Add-DnsServerClientSubnet -cn MyDC -Name 'My_CS_Entry'
因此,在没有任何文档的情况下,我不知道如何正确地委派权限。
答案1
嗯,这不是我想要的最终答案,但它是一种东西;我希望会有更多的答案。
我发现域BUILTIN\Administrators
组的成员具有足够的 DNS 策略权限。
这并不奇怪,因为它本质上是一个没有成员计算机管理权限的域管理员。
我真的很想找到一些更有限的东西,但目前这就是我要做的。
答案2
这可能是由于 DnsAdmins 安全组的安全权限未自动添加到新创建的 Active Directory 集成区域中。要解决此问题,您应该手动将 DnsAdmins 安全组添加到区域访问控制列表 (ACL) 并授予完全控制权。
有三种方法可以实现此目的:
1.使用Dsacls.exe工具。
2.使用 Active Directory 服务接口 (ADSI) 编辑器
3.使用DNS管理器。
您可以查看 Microsoft 的此 KB 来了解详细信息: KB837335