2016-10-19 59 views
0

我想知道是否有一種方法來打開或關閉UserAccountControl標誌,儘管其他標誌的狀態。例如,假設我們有類似如下的配置:修改UserAccountControl標誌 - 切換標誌

Admin Flag Configuration

我怎麼會只切換「密碼永不過期」標誌設置爲true儘管目前$user.UserFlags.value

當所有的標誌都切換關閉時,$user.UserFlags.value是513,當只有「密碼永不過期」標誌被觸發時,$user.UserFlags.value是66049.

正如你可以想像,有號碼的範圍該$user.UserFlags.value可以反映不同的配置如下面的文章中提到:

How to use the UserAccountControl flags to manipulate user account properties

我覺得我可以拿出使用口罩按位操作的解決方案,但需要一些指導。我的最終目標是編寫一個Power Shell腳本來切換此值,而不管當前的配置如何。

有什麼建議嗎?

回答

1

您正在查找的操作是XOR。使用按位異或運算符(-bxor)混爲一談當前UserFlags值與要切換(在這種情況下,爲0x10000或65536爲標誌DONT_EXPIRE_PASSWORD)的標誌,並提交更改:

$user.InvokeSet('UserFlags', $user.UserFlags.Value -bxor 0x10000) 
$user.CommitChanges() 

欲瞭解更多信息,請參閱「位運算符」部分about_Comparison_Operators

+0

完美而簡潔。非常感謝你! –