Problem
You want to delegate control of managing the resource records in a zone.
Solution
Using a graphical user interface
-
If an entry for the DNS server you want to connect to does not exist, right-click on DNS in the left pane and select “Connect to DNS Server.” Select “This computer” or “The following computer,” then enter the server you want to connect to (if applicable) and click OK.
-
Right-click on the name of the zone and select Properties.
-
Click on the Security tab.
-
Click the Add button.
-
Use the Object Picker to locate the user or group to which you want to delegate control.
-
Under Permissions, check the Full Control box.
-
Click OK.
Using a command-line interface
The following command grants full control over managing the resource records in an AD-Integrated zone:
> dsacls dc=<ZoneName>,cn=MicrosoftDNS,<DomainOrAppPartitionDN> /G <UserOrGroup>:GA;;
Using VBScript
' This code grants full control for the specified user or group over
' an AD-Integrated zone.
' ------ SCRIPT CONFIGURATION -------
strZoneDN = "dc=<ZoneName>,cn=MicrosoftDNS,<DomainOrAppPartitionDN>"
strUserOrGroup = "<UserOrGroup>" ' e.g. joe@rallencorp.com or RALLENCORP\joe
' ------ END CONFIGURATION ---------
set objZone = GetObject("LDAP://" & strZoneDN)
'############################
' Constants
'############################
' ADS_ACETYPE_ENUM
Const ADS_ACETYPE_ACCESS_ALLOWED_OBJECT = &h5
' ADS_FLAGTYPE_ENUM
Const ADS_FLAG_OBJECT_TYPE_PRESENT = &h1
' ADS_RIGHTS_ENUM
Const ADS_RIGHT_GENERIC_ALL = &h10000000
'############################
' Create ACL
'############################
set objSD = objZone.Get("nTSecurityDescriptor")
set objDACL = objSD.DiscretionaryAcl
' Full Control
set objACE1 = CreateObject("AccessControlEntry")
objACE1.Trustee = strUserOrGroup
objACE1.AccessMask = ADS_RIGHT_GENERIC_ALL
objACE1.AceFlags = 0
objACE1.Flags = ADS_FLAG_OBJECT_TYPE_PRESENT
objACE1.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
objDACL.AddAce objACE1
'############################
' Set ACL
'############################
objSD.DiscretionaryAcl = objDACL
objZone.Put "nTSecurityDescriptor", objSD
objZone.SetInfo
WScript.Echo "Delegated
control of " & strZoneDN & " to " & strUserOrGroup
Discussion
By default, members of the DNSAdmins group have control over DNS server and zone configuration. You can delegate control of individual AD-integrated zones by modifying permissions on the zone object in AD. The solutions show examples for how to grant Full Control to an additional user or group over a particular zone.

