![](/img/trans.png)
[英]Powershell GUI / Forms - Not creating Active Directory account
[英]Powershell Active Directory Account Attribute to a variable
对不起,新手问题。 我正在使用Powershell 3来获取所有用户帐户的列表。 我正在尝试为帐户“启用”或“禁用”生成输出。 我可以使用以下方法从活动目录获取帐户状态代码:
$rc = $Rech.PropertiesToLoad.Add("userAccountControl");
这将显示正确的帐户状态代码。
当我尝试对值使用if语句时,我没有得到任何结果。 如何将此值放入变量以对其使用某些逻辑?
最后,我的要求是将输出输出到CSV文件中,然后将其发送给HR并对其进行检查,而不是将其设为“ Enabled”或“ Disabled”的代码。
谢谢。
userAccountControl属性是一个位图 ,这意味着数字中的每个位都代表一个true(1)或false(0)值。 这是一个例子:
$ADS_UF_ACCOUNTDISABLE = 2
...
$accountDisabled = ($userObject.Properties["useraccountcontrol"][0] -band $_ADS_UF_ACCOUNTDISABLE) -ne 0
在此示例中,如果帐户被禁用,变量$ accountDisabled将包含$ TRUE,否则将包含$ FALSE。 要检查userAccountControl属性中的任何其他位,请使用http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa772300.aspx中记录的标志值,并与-band运算符组合在一起,如本例所示。 如果不为零( -ne 0 ),则该位置1;否则,该位置1。 如果为零( -eq 0 ),则未设置该位。 另一个示例是检查是否设置了“密码永不过期”位。 您可以使用如下代码:
$ADS_UF_DONT_EXPIRE_PASSWD = 65536
...
$neverExpires = ($userObject.Properties["useraccountcontrol"][0] -band $ADS_UF_DONT_EXPIRE_PASSWD) -ne 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.