修改UserAccountControl标志 - 切换标志

时间:2016-10-19 12:06:36

标签: windows powershell user-management

我想知道是否有办法在其他标志状态下打开或关闭UserAccountControl标志。例如,假设我们有如下配置:

Admin Flag Configuration

尽管当前$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 个答案:

答案 0 :(得分:1)

您正在寻找的操作是XOR。使用按位XOR运算符((funcc {:a 1 :b 2 :c 3}) )将当前-bxor值与要切换的标志(在这种情况下为标志UserFlags的0x10000或65536)混淆并提交更改:

DONT_EXPIRE_PASSWORD

有关详细信息,请参阅about_Comparison_Operators中的“按位运算符”部分。