2014-01-08 3 views
0

У нас есть отчет (CSV), в котором перечислены компьютеры. Я хочу принять этот отчет и найти информацию OU для каждого компьютера, а затем выделить компоненты OU для лучшей сортировки. Я читаю петлю foreach из файла CSV. Затем сделайте get-adcomputer для получения DN. Оттуда я создаю массив и разбиваю DN на его части.powershell разбивает DN на отдельные строки OU

If(($lineItem.ObjectType -eq "WorkStation") -or ($lineItem.ObjectType -eq "Server")) 
    { 
    $dn = get-adcomputer -server "washdc.xyz.com" -filter 'name -eq $computer' | Select -expand DistinguishedName 
    $ou = $dn.Substring($Computer.Length + 7) 
    $domain = "Washdc" 
    $ou = $ou -replace ",DC=washdc,dc=xyz,dc=com","" 
    $ou = $ou -replace "ou=","" 
    $Ouarray = $ou.split(",") 
     For ($i=0; $i-le $ouarray.length-1;$i++) not sure what to do here? 

Я хочу создать переменную для каждого подразделения (например, $ OU1, $ OU2, и т.д ...) как $ я увеличивается. Конечная цель - отменить листинг OU, чтобы он мог выводиться в формате сверху вниз ... показывая OU7, OU6, Ou5, вплоть до 0. Я делаю это слишком сложным?

+1

Невозможно использовать свойство CanonicalName? – mjolinor

+0

Cn просто дает мне имя пользователя? или это какая-то команда PS? – user3067193

+1

Cn - это CommonName. CanonicalName - это другое свойство. get-adcomputer -server "washdc.xyz.com" -filter 'name -eq $ computer' -property CanonicalName | Выберите -expand CanonicalName – mjolinor

ответ

2

AD обеспечивает вычисленный свойство CanonicalName, которое должно дать вам расположение AD объекта в порядке, вы хотите:

get-adcomputer -server "washdc.xyz.com" -filter 'name -eq $computer' -property CanonicalName | Select -expand CanonicalName 

Обратите внимание, что это вычисляемое свойство, поэтому он не появляется в ADSIEdit как атрибут объекта.

Смежные вопросы