使用PowerShell启用AD帐户

时间:2015-03-13 13:27:38

标签: powershell active-directory

在Active Directory中创建的所有新用户帐户都保持为已禁用,并且选项"用户必须在下次登录时更改密码"被勾选了。这个帐户将在7天内保持禁用状态,并且在第8天需要启用它。创建帐户已经由另一个脚本完成,我仍然遇到帐户启用部分。

如何使用PowerShell脚本存档启用这些帐户?如何使用所有帐户属性,如lastlogon日期,帐户创建日期,帐户状态(已禁用)和选项"用户必须在下次登录时更改密码"验证并查找用户是否需要启用新用户?

get-aduser -f {-not ( lastlogontimestamp -like "*") -and (enabled -eq $false) -and (pwdLastSet -eq 0)} | 
    Select-Object name,SamAccountName | 
    export-csv -path data.csv

2 个答案:

答案 0 :(得分:0)

以下是您可以执行此操作的方法,但您需要编写脚本:

检查whenCreated属性它有一个日期时间戳,您可以使用它来查看该帐户的年龄。

如果该帐户较旧,则为7天并且该帐户已停用,请将userAccountControl属性设置为启用IE 512,然后设置您的用户必须更改密码属性为true

答案 1 :(得分:0)

根据您的条件使用过滤器进行过滤。此代码段获取已禁用帐户的用户对象,然后过滤掉不到一周的帐户。它将它们存储在用户对象的集合中。您可以使用$variable | $variable where { [filter] }格式通过任何用户对象属性进一步过滤$ userlist。过滤器可以根据需要复杂化。我喜欢在每一行上放一个,所以我可以轻松地评论出给定的过滤器。将过滤后的列表用于您想要的任何内容。

$WeekAgoDate = $(Get-Date).addDays(-7)

$userlist = get-aduser -filter { enabled -eq $false } -Properties *
$userlist = $userlist | Where { $_.created -lt $WeekAgoDate }
"$userlist.count accounts found"
$userlist | select name, samaccountname | format-table

启用$ userlist:     $ userlist |使-ADAccount