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

Add new allowed property value to a property pattern

February 18, 2021 Views: 1569

The script adds a new value to 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 added is taken from the custom command parameter.

Parameters:

  • $propertyName - Specifies the LDAP name of the property for which a new value will be added.
  • $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 added 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 -contains $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.Add($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