2012-10-08 79 views
1

我需要編寫一個查詢Active Directory以查找某些對象的SID/GUID的PowerShell腳本,並在某個範圍內找到最少可用的SID/GUID。使用PowerShell查詢AD for SID

我想採取一次查詢AD的方法,並用所有SID填充數組,然後按遞增順序對此數組進行排序。然後,我將初始化一個變量,使用我的SID範圍的下限並與數組進行比較。

現在我有2個問題:

  1. 我如何可以查詢所有對象的AD,並從那裏填充的SID的數組?

  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

sort sid排序不正確。和SID與最後幾個字符爲111467出現在9877之前。我認爲它只是檢查第一個數字或soemthing – user1534235

+0

@ user1534235。不,它只是按字母排序..讓我想.. –

+0

@ user1534235編輯我的答案,以數字方式排序最後一個字符' - ' –