/// <summary> /// Process Record. /// </summary> protected override void ProcessRecord() { using (var token = GetToken()) { var attributes = ResourceAttribute ?? new ClaimSecurityAttribute[0]; switch (ParameterSetName) { case "FromSddl": WriteObject(NtSecurity.EvaluateConditionAce(token, Condition, attributes)); break; case "FromData": WriteObject(NtSecurity.EvaluateConditionAce(token, ConditionData, attributes)); break; case "FromAce": if (!Ace.IsConditionalAce) { throw new ArgumentException("Must specify a conditional ACE."); } WriteObject(NtSecurity.EvaluateConditionAce(token, Ace.ApplicationData, attributes)); break; } } }