Configure password spell out

When creating a new password, for example during password reset, Adaxes provides the option to spell it out phonetically. It can be helpful for remembering the new password or communicating it to a user over the phone. You can change the words used in the phonetic alphabet and translate it to different languages.

Only Adaxes service administrators have the rights to customize password spell out settings.

Password spell out settings are stored as a collection of languages, each having its own phonetic alphabet. By default, password spell out settings contain alphabets for English, French, and German languages.

Add new alphabet

To add a phonetic alphabet for a new language or replace an alphabet for an existing language, use the following script.

In the script:

  • $serviceHost – the host name of the computer where the Adaxes service is installed.

  • $languageCode – the two-letter ISO 639-1 language code.

  • $alphabet – the new phonetic alphabet.

[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi")

$serviceHost = "localhost"
$languageCode = "es"
$alphabet = [PSCustomObject]@{
    "a"="Antonio";
    "b"="Burgos";
    "c"="Carmen";
    "d"="Dolores";
    "e"="España";
    "f"="Francia";
    "g"="Granada";
    "h"="Historia";
    "i"="Inés";
    "j"="José";
    "k"="Kilómetro";
    "l"="Lorenzo";
    "m"="Madrid";
    "n"="Navarra";
    "ñ"="Ñoño";
    "o"="Oviedo";
    "p"="París";
    "q"="Queso";
    "r"="Ramón";
    "s"="Sábado";
    "t"="Toledo";
    "u"="Ulises";
    "v"="Valencia";
    "w"="Washington";
    "x"="Xilófono";
    "y"="Yegua";
    "z"="Zaragoza";
    "0"="Cero";
    "1"="Uno";
    "2"="Dos";
    "3"="Tres";
    "4"="Cuatro";
    "5"="Cinco";
    "6"="Seis";
    "7"="Siete";
    "8"="Ocho";
    "9"="Nueve";
    "@"="Símbolo arroba";
    "#"="Signo de número";
    "*"="Asterisco";
    "$"="Signo de dólar";
    "-"="Guíon";
    "+"="Adición";
    "?"="Signo de interrogación - cierre";
    "¿"="Signo de interrogación - apertura";
    "_"="Signo de subrayado";
    "&"="Ampersand";
    "!"="Signo de exclamación - cierre";
    "¡"="Signo de exclamación - apertura";
    "%"="Signo de porcentaje";
    "{"="Llave de apertura - izquierda";
    "}"="Llave de cierre - derecho";
    "/"="Barra oblicua";
    "\"="Barra inversa";
    "'"="Apóstrofe";
    "("="Paréntesis izquierdo";
    ")"="Paréntesis derecho";
    ","="Coma";
    "."="Punto";
    ":"="Dos puntos";
    ";"="Punto y coma";
    "="="Signo de igual";
    "`""="Comillas dobles";
    "<"="Signo de menor que";
    ">"="Signo de mayor que";
    "["="Corchete izquierdo";
    "]"="Corchete derecho";
    "^"="Circunflejo";
    "``"="Acento grave";
    "|"="Barra vertical";
    "~"="Tilde";
    " "="Espacio"
}

# Connect to the Adaxes service.
$ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace"
$service = $ns.GetServiceDirectly($serviceHost)

# Prompt for credentials.
$credential = Get-Credential

# Bind to the settings container.
$path = $service.Backend.GetConfigurationContainerPath("ConfigurationSetSettings")
$settings = $service.OpenObject($path, $credential.UserName,`
    $credential.GetNetworkCredential().Password, 0)

# Get current parameter value.
$spellOut = $settings.ToJson("Adsi.PasswordSpellOut") | ConvertFrom-Json

# Change settings.
$spellOut | Add-Member -Name $languageCode -Value $alphabet `
    -MemberType NoteProperty -Force
$settings.FromJson("Adsi.PasswordSpellOut", ($spellOut | ConvertTo-Json))

Update alphabet

To add a new character to an existing alphabet or change the spell out word for a character, use the following script. In the script:

  • $serviceHost – the host name of the computer where the Adaxes service is installed.

  • $languageCode – the two-letter ISO 639-1 language code.

  • $character – the character to set the spell out word for.

  • $word – the spell out word. Specify $null to remove the character specified in $character from the alphabet.

[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi")

$serviceHost = "localhost"
$languageCode = "en"
$character = "f"
$word = "Florida"

# Connect to the Adaxes service.
$ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace"
$service = $ns.GetServiceDirectly($serviceHost)

# Prompt for credentials.
$credential = Get-Credential

# Bind to the settings container.
$path = $service.Backend.GetConfigurationContainerPath("ConfigurationSetSettings")
$settings = $service.OpenObject($path, $credential.UserName,`
    $credential.GetNetworkCredential().Password, 0)

# Get current parameter value.
$spellOut = $settings.ToJson("Adsi.PasswordSpellOut") | ConvertFrom-Json

# Change settings.
if ($null -eq $word)
{
    # Remove character from alphabet.
    $spellOut.$languageCode.PSObject.Properties.Remove($character)
}
else
{
    # Set spell out word.
    $spellOut.$languageCode | Add-Member -Name $character -Value $word `
        -MemberType NoteProperty -Force
}
$settings.FromJson("Adsi.PasswordSpellOut", ($spellOut | ConvertTo-Json))

Remove language

To remove the alphabet for a particular language, use the following script. In the script:

  • $serviceHost – the host name of the computer where the Adaxes service is installed.

  • $languageCode – the two-letter ISO 639-1 language code.

[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi")

$serviceHost = "localhost"
$languageCode = "es"

# Connect to the Adaxes service.
$ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace"
$service = $ns.GetServiceDirectly($serviceHost)

# Prompt for credentials.
$credential = Get-Credential

# Bind to the settings container.
$path = $service.Backend.GetConfigurationContainerPath("ConfigurationSetSettings")
$settings = $service.OpenObject($path, $credential.UserName,`
    $credential.GetNetworkCredential().Password, 0)

# Get current parameter value.
$spellOut = $settings.ToJson("Adsi.PasswordSpellOut") | ConvertFrom-Json

# Remove language.
$spellOut.PSObject.Properties.Remove($languageCode)
$settings.FromJson("Adsi.PasswordSpellOut", ($spellOut | ConvertTo-Json))

Reset to defaults

To reset password spell out settings to defaults, use the following script. In the script:

  • $serviceHost – the host name of the computer where the Adaxes service is installed.
[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi")

$serviceHost = "localhost"

# Connect to the Adaxes service.
$ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace"
$service = $ns.GetServiceDirectly($serviceHost)

# Prompt for credentials.
$credential = Get-Credential

# Bind to the settings container.
$path = $service.Backend.GetConfigurationContainerPath("ConfigurationSetSettings")
$settings = $service.OpenObject($path, $credential.UserName,`
    $credential.GetNetworkCredential().Password, 0)

# Reset settings.
$settings.FromJson("Adsi.PasswordSpellOut", ($null | ConvertTo-Json))

View current settings

To view the current password spell out settings, use the following script. In the script:

  • $serviceHost – the host name of the computer where the Adaxes service is installed.
[Reflection.Assembly]::LoadWithPartialName("Softerra.Adaxes.Adsi")

$serviceHost = "localhost"

# Connect to the Adaxes service.
$ns = New-Object "Softerra.Adaxes.Adsi.AdmNamespace"
$service = $ns.GetServiceDirectly($serviceHost)

# Prompt for credentials.
$credential = Get-Credential

# Bind to the settings container.
$path = $service.Backend.GetConfigurationContainerPath("ConfigurationSetSettings")
$settings = $service.OpenObject($path, $credential.UserName,`
    $credential.GetNetworkCredential().Password, 0)

# View settings.
$spellOut = $settings.ToJson("Adsi.PasswordSpellOut") | ConvertFrom-Json
foreach ($language in $spellOut.PSObject.Properties)
{
    Write-Host "Language code:" $language.Name
    $language.Value
}

See also