2013-10-29 154 views
0

對不起,新手問題。我使用Powershell 3來獲取所有用戶帳戶的列表。我正在嘗試爲帳戶生成一個輸出,「啓用」或「禁用」。我可以使用以下帳戶從活動目錄獲取帳戶狀態代碼:Powershell Active Directory帳戶屬性到變量

$rc = $Rech.PropertiesToLoad.Add("userAccountControl"); 

這將顯示正確的帳戶狀態代碼。

當我嘗試在值上使用if語句時,我沒有得到任何結果。我如何將這個值放入一個變量來使用它的一些邏輯?

最後,我的要求是將輸出結果輸出到一個CSV文件,我可以發送給HR並讓他們檢查它,而不是代碼,我希望讓它說「已啓用」或「已禁用」。

謝謝。

回答

1

userAccountControl屬性是一個位圖,這意味着數字中的每一位都代表真(1)或假(0)值。這裏有一個例子:

$ADS_UF_ACCOUNTDISABLE = 2 
... 
$accountDisabled = ($userObject.Properties["useraccountcontrol"][0] -band $_ADS_UF_ACCOUNTDISABLE) -ne 0 

在這個例子中,變量$ accountDisabled將包含$ TRUE,如果該帳戶被禁用,或$否則爲false。要檢查userAccountControl屬性中的任何其他位,請使用在http://msdn.microsoft.com/en-us/library/windows/desktop/aa772300.aspx中記錄的標誌值,並與-band運算符一起使用,如本例中所示。如果不爲零(-ne 0),則該位置位;如果爲零(-eq 0),則該位未設置。另一個例子是檢查是否設置了「密碼永不過期」位;你可以使用這樣的代碼:

$ADS_UF_DONT_EXPIRE_PASSWD = 65536 
... 
$neverExpires = ($userObject.Properties["useraccountcontrol"][0] -band $ADS_UF_DONT_EXPIRE_PASSWD) -ne 0 
相關問題