2012-10-08 2 views
1

Мне нужно написать сценарий PowerShell, который запрашивает Active Directory для SID/GUID определенных объектов и находит наименее доступный SID/GUID в пределах диапазона.Запрос AD для SID с использованием PowerShell

Я хочу сразу обратиться к AD и заполнить массив всеми SID, а затем отсортировать этот массив в порядке возрастания. Затем я инициализирую переменную с нижним пределом диапазона SID и сравним с массивом.

Теперь у меня есть 2 вопроса:

  1. Как я могу запросить AD для всех объектов и заполнить массив УЛМ оттуда?

  2. Как сравнить два значения SID (они находятся в очень сложном формате)?

Спасибо!

+0

Какова цель пункта 2? –

ответ

1

Использование Quest module for Active Directory довольно прост:

$sidarray = get-qaduser | 
select samaccountname, sid | 
sort {[Regex]::Replace($_.sid, '\d+$', 
{ 
    $args[0].Value.PadLeft(10, '0') 
    }) 
} 

вы можете найти какой-то матч, как это:

$sidmatching = $sidarray | ? { $_.sid -match '-1234$' } 
+0

Сортировка sid не сортируется правильно. и SID с последними несколькими символами, так как 111467 появляется до 9877. Я думаю, что он проверяет только первую цифру или soemthing – user1534235

+0

@ user1534235. Нет, это просто и в алфавитном порядке .. позвольте мне подумать .. –

+0

@ user1534235 Редактировать мой ответ, чтобы сортировать по цифровому пути для последнего символа afetr '-' –

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