Powershell,仅查找在过去14天内被禁用的用户



我有一个powershell脚本,他的输出显示了过去14天禁用的所有内容。我想改变的是,这个脚本将从特定的OU运行,而不是从整个DC运行。我希望他只向我显示过去14天内特定OU的禁用用户。

脚本:

$date = (Get-Date).AddDays(-14)
$disabledUsers = Get-ADObject -Filter 'ObjectClass -eq "User" -and whenChanged -ge $sixMonthsAgo -and UserAccountControl -band 2'
$server = Get-ADDomainController
foreach ($disabledUser in $disabledUsers)
{
Get-ADReplicationAttributeMetadata $disabledUser -Server $server -Properties UserAccountControl |
Where-Object { $_.AttributeName -eq 'UserAccountControl' } | Select Object, LastOriginatingChangeTime |
Where-Object { $_.LastOriginatingChangeTime -gt $date }
}

您应该知道,只有在对象被禁用后没有被修改的情况下,当前脚本才能实际工作。但据我所知,这是唯一不记录特定userAccountControl属性修改的方法(这仍然不能记录100%的情况,因为一旦禁用,对象可以在不启用的情况下看到他的userAccountControl被修改(。

基于";用户在被禁用之后永远不会被修改":

Search-ADAccount -SearchBase "OU=myOU,DC=mydom,DC=adds" -AccountDisabled -UsersOnly | Get-ADUser -Properties whenChanged | Where whenChanged -gt (Get-Date).AddDays(-14)

使用Filter将使其快速运行$date=(获取日期(.AddDays(-14(get aduser-filter{Enabled-eq$false-and Modified-ge$date}-Properties Modified | select samaccountname,Modified

最新更新