在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
答案 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