We use cookies to improve your experience.
By your continued use of this site you accept such use.
For more details please see our privacy policy and cookies policy.

Script Repository

Remove allowed property value from a property pattern

April 18, 2022 Views: 431

The script removes a value from the list of values allowed for a property by a property pattern and sorts all the values in alphabetical order. To run the script, create a custom command configured for the Domain-DNS object type. The value to be removed is taken from the custom command parameter.

Parameters:

  • $propertyName - Specifies the LDAP name of the property for which a value will be removed.
  • $propertyPatternDN - Specifies the distinguished name (DN) of the property pattern to be updated. For information on how to get the DN of a directory object, see Get the DN of a directory object.
  • $parameterName - Specifies the name of the custom command parameter that will be used to enter the value to be removed with the param- prefix.
Edit Remove
PowerShell
$propertyName = "company" # TODO: modify me
$propertyPatternDN = "CN=My Pattern,CN=Property Patterns,CN=Configuration Objects,CN=Adaxes Configuration,CN=Adaxes" # TODO: modify me
$parameterName = "param-Value" # TODO: modify me

# Get parameter value
$parameterValue = $Context.GetParameterValue($parameterName)

# Bind to the Property Pattern
$userPattern = $Context.BindToObject("Adaxes://$propertyPatternDN")
$values = New-Object System.Collections.ArrayList
$isPropertyRequired = $False
foreach ($item in $userPattern.Items)
{
    if ($item.PropertyName -ne $propertyName)
    {
        continue
    }
    
    $constraints =  $item.GetConstraints()
    $constraint = $constraints.GetConstraint("ADM_PROPERTYCONSTRAINTCATEGORY_VALUEFORMAT")
    
    # Check if new value exists
    if ($constraint.Values -notcontains $parameterValue)
    {
        return
    }

    # Get current values
    $constraint.Values | %%{[void]$values.Add($_)}
    $isPropertyRequired = $item.IsPropertyRequired
    
    # Remove Property Pattern item
    $userPattern.Items.Remove($item)
    break
}

# Add new value
[void]$values.Remove($parameterValue)

# Sort values
$values.Sort()

# Update Property Pattern
$item = $userPattern.Items.Create()
$item.PropertyName = $propertyName
$item.IsPropertyRequired = $isPropertyRequired

$constraints = $item.GetConstraints()
$constraint = $constraints.Create("ADM_PROPERTYCONSTRAINTTYPE_VALUERANGE")
$constraint.AreValuesDenied = $False
$constraint.Values = $values.ToArray()
$constraints.Add($constraint)
$item.SetConstraints($constraints)

# Save the changes
$item.SetInfo()
$userPattern.Items.Add($item)
Comments 0
Leave a comment
Loading...

Got questions?

Support Questions & Answers