Share via


Modifying an Item's Discretionary Access Control List

Topic Last Modified: 2006-06-11

To modify an item's discretionary access control list (DACL), you manage the access control entries in the effective_aces, subcontainer_inheritable_aces, and subitem_inheritable_aces sections of the DACL.

The following example demonstrates how to add access-allowed and access-denied ACEs to an item's DACL.

JScript

Example

function addAccessAllowedAce( XMLDomDescriptor, sdACEElem ) {
 var p = XMLDomDescriptor.documentElement.prefix;
 WScript.Echo("descriptor prefix: " + prefix);
 if(p != "")
  p += ":";
 var daclElem = XMLDomDescriptor.selectSingleNode("/"+p+"security_descriptor/"+p+"dacl");
 if(daclElem == null)
  throw "ERR: No discretionary access control list in descriptor";

 var effAcesElem = daclElem.selectSingleNode(p+"effective_aces");
 if(effAcesElem == null)
   throw "ERR: No effective aces!";

 effAcesElem.appendChild(sdACEElem);

 return;
}

function addAccessDeniedAce( XMLDomDescriptor, sdACEElem ) {
 var p = XMLDomDescriptor.documentElement.prefix;
 WScript.Echo("descriptor prefix: " + prefix);
 if(p != "")
  p += ":";
 var daclElem = XMLDomDescriptor.selectSingleNode("/"+p+"security_descriptor/"+p+"dacl");
 if(daclElem == null)
  throw "ERR: No discretionary access control list in descriptor";

 var effAcesElem = daclElem.selectSingleNode(p+"effective_aces");
 if(effAcesElem == null)
   throw "ERR: No effective aces!";

 effAcesElem.insertBefore( sdACEElem , effAcesElem.firstChild);

 return;
}