Question:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
function NyChildOU { $overOU = Read-Host "Type in the name of the parrent OU" $oucheck = [adsi]::Exists("LDAP://OU=$overOU,OU=PS,DC=PS,DC=local") if ($oucheck -eq "true") { $navnpaaou = Read-Host "Type in the name of the new OU" $oucheck2 = [adsi]::Exists("LDAP://OU=$navnpaaou,OU=$overOU,OU=PS,DC=PS,DC=local") if ($oucheck2 -eq "false") { New-ADOrganizationalUnit -Name $navnpaaou -path "OU=$navnpaaou,OU=$overOU,OU=PS,DC=PS,DC=Local" Write-Host "The new entry: $navnpaaou is created within $overOU" } else { Write-Host "OUen $navnpaaou do exist within $overOU" } } else { Write-Host "OUen $overOU doesen't exist, trie again" } } |
This is my script, the purpose of which is to create a OU unless it already exist. I just can’t figure out what’s wrong with my code.
Answer:
Simply check if Get-ADOrganizationalUnit
returns an OU with that distinguished name and create it otherwise:
1 2 3 4 5 6 7 8 9 |
$parentOU = 'OU=parent,OU=PS,DC=example,DC=com' $navnpaaou = Read-Host "Type in the name of the new OU" $newOU = "OU=$navnpaaou,$parentOU" if (Get-ADOrganizationalUnit -Filter "distinguishedName -eq '$newOU'") { Write-Host "$newOU already exists." } else { New-ADOrganizationalUnit -Name $navnpaaou -Path $parentOU } |