ps/Modules/Alkami.DevOps.SystemEngineering/Public/Get-DomainNameDistinguishedName.ps1

46 lines
1.4 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
function Get-DomainNameDistinguishedName {
<#
.SYNOPSIS
Splits a domain name string in to distinguished name format.
.DESCRIPTION
Splits a domain name string in to distinguished name format. I.e. DC=sample,DC=domain,DC=local
.PARAMETER DomainName
[string] The Domain Name to Split
.EXAMPLE
Get-DomainNameDistinguishedName "corp.alkamitech.com" -verbose
VERBOSE: [Get-DomainNameDistinguishedName] : Formatting: [corp.alkamitech.com]
VERBOSE: [Get-DomainNameDistinguishedName] : Result: [DC=corp,DC=alkamitech,DC=com]
DC=corp,DC=alkamitech,DC=com
#>
[CmdletBinding()]
[OutputType([string])]
param(
[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[string]$DomainName
)
$logLead = Get-LogLeadName
if ($DomainName -match "DC=|OU=") {
Write-Host "$logLead : Domain Name [$DomainName] already appears to be distinguished name format. No transform will occur."
return $DomainName
}
Write-Verbose "$logLead : Formatting: [$DomainName]"
# ToDo: Use Join String when we convert to PS7
# Split on the '.' character, prefix each segment with DC=, then join with ','
$domainSplitWithPrefix = $DomainName.Split('.') | ForEach-Object { "DC=" + $_ }
$domainNameDistinguishedFormat = ($domainSplitWithPrefix -join ",").TrimEnd(',')
Write-Verbose "$logLead : Result: [$domainNameDistinguishedFormat]"
return $domainNameDistinguishedFormat
}