我想知道是否有办法在其他标志状态下打开或关闭UserAccountControl标志。例如,假设我们有如下配置:
尽管当前$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脚本来切换此值,无论当前配置是什么。
有什么建议吗?
答案 0 :(得分:1)
您正在寻找的操作是XOR。使用按位XOR运算符((funcc {:a 1 :b 2 :c 3})
)将当前-bxor
值与要切换的标志(在这种情况下为标志UserFlags
的0x10000或65536)混淆并提交更改:
DONT_EXPIRE_PASSWORD
有关详细信息,请参阅about_Comparison_Operators
中的“按位运算符”部分。