Powershell,仅查找过去 14 天内被禁用的用户
Powershell, find users that were disabled in the past 14 days only
我有一个 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)
使用过滤器可以运行快速完成
$日期 = (Get-Date).AddDays(-14)
get-aduser -filter {Enabled -eq $false -and Modified -ge $date } -Properties Modified | select samaccountname,已修改
我有一个 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)
使用过滤器可以运行快速完成 $日期 = (Get-Date).AddDays(-14) get-aduser -filter {Enabled -eq $false -and Modified -ge $date } -Properties Modified | select samaccountname,已修改