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

问题描述

我有一个powershell脚本,他的输出向我显示了过去14天中禁用的所有内容。 我正在寻找的是更改此脚本,使其从特定的OU(而不是整个DC)运行。 我希望他只向我显示来自特定OU的过去14天中的残疾用户。

脚本:

$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属性修改的唯一方法(而且,由于一旦禁用,对象仍然可以看到其userAccountControl修改而未启用),这仍然无法记录100%的情况。

基于“用户被禁用后再也不会被修改”:

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

使用过滤器将使其快速运行 $ date =(获取日期).AddDays(-14) get-aduser -filter {Enabled -eq $ false -and Modified -ge $ date}-属性已修改|选择samaccountname,修改

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...