【发布时间】:2021-02-21 09:21:21
【问题描述】:
我有一个 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 }
}
【问题讨论】:
-
[1] 更改您的
-Filter以将双引号放在过滤器字符串的外侧。否则您的$Vars将被视为文字字符串,而不是其中的值。 ///// [2] 你没有设置$sixMonthsAgo。 -
同上,还有,为什么在你想要用户的地方使用
Get-ADObject? (改用Get-ADUser)
标签: powershell scripting active-directory windows-scripting