Every once in a while I need to get the domain name from a computer and use it in a PowerShell script. But when you do something like “Get-WMIObject –Class Win32_ComputerSystem | Select-Object –ExpandProperty Domain” you’ll get an output such as “jeffwouters.lan”.
But most of the times, a script will require an input like “DC=jeffwouters,DC=lan” ![]()
Now let’s say that we have a given variable:
$DomainName = “jeffwouters.lan”
By using the “split” method, you can split a string into separate values:
$DomainSplit = $DomainName.split(“.”)
This will give you a value “jeffwouters” and a value “lan” instead of the given value “jeffwouters.lan”.
Next, we would want to put something in front of the values, namely the “DC=” characters.
This can be done easily, just by creating a new variable with something like “DC=$(DomainSplit)”… but this will provide you with a nasty.
Why? Because there are multiple values in the variable (it has become an array
). The correct way to select the separate values is to add [0] or [1] after the variable where the number specifies the character.
Ow, and not to forget… between both values you will need to add a “,” since that’s the correct format for a distinguished name ![]()
So, to get the format you desire, the following command will do the trick:
$DomainName = “DC=$($DomainSplit[0]),DC=$($DomainSplit[1])”
This way, you’ve just converted “jeffwouters.lan” to “DC=jeffwouters,DC=lan” ![]()
Now, there is also a possibility that you have a child domain… something like “test.jeffwouters.lan”. You can convert this the same way as before, simply by adding another “DC=$($DomainSplit[2])”.
And to create a function out of this (since I like re-usable code…):
Function Convert-ToDistinguishedName()
{
<#
.Synopsis
Function to convert a domain name into a distinguished name format..Description
Function to convert a domain name into a distinguished name format.
No default is used..Example
Convert-ToDistinguishedName -DomainName “jeffwouters.lan”.Example
Convert-ToDistinguishedName -Name “jeffwouters.lan”.Notes
Author: Jeff Wouters | Methos IT
#>
param ( [Parameter(Position=0, Mandatory=$True)][ValidateNotNullOrEmpty()][Alias('Name')][String]$DomainName )
$DomainSplit = $DomainName.split(“.”)
if ($DomainSplit[2] -ne $null) {
$DomainName = “DC=$($DomainSplit[0]),DC=$($DomainSplit[1]),DC=$($DomainSplit[2])”
$DomainName
} else {
$DomainName = “DC=$($DomainSplit[0]),DC=$($DomainSplit[1])”
$DomainName
}
}
Now, this is a part of a larger deployment script I’m working on which I will be posting parts of during the coming weeks.
After the script is finished, I’ll post it in the Microsoft Script Library and on this blog ![]()

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 