我有什么可能是也可能不是一个独特的问题(但可能不是),我确信这是一个(相对)简单的解决方案。我的组织管理着3个不同地区的几所学校。我正在编写一个PS脚本来遍历AD中的所有用户和计算机,并找到被禁用的人机并移动它们。问题在于,因为我们使用Exchange for Rooms&技术,这是残疾人的帐户。我需要做的是使用Get-ADUser,只查看每个站点的“Users”OU中的帐户。如果我只打一个网站,我知道如何做到这一点:
Get-ADUser -SearchBase “OU=Users, OU=SiteName, OU=Region, OU=Company,dc=Company,dc=org” | Select Name,SamAccountName
但是因为我们在3个地点有多个站点,每个站点都有自己的“用户”OU,所以我不确定攻击它的最佳方法。也许我不应该使用SearchBase?
我希望有一种方法可以使用通配符或Get-ADUser语句中的某些内容来实现这一点,但我的直觉是使用for循环对其进行编写,以某种方式拉动区域,然后是网站,并且通过,但我不确定这是否正确,或者如何将数据正确地拉入阵列。
答案 0 :(得分:0)
我有时不得不解决这个问题,并且发现对我来说最好的方法是过滤DN。
我怀疑您的共享邮箱/资源邮箱和服务帐户也位于他们自己的OU中。
他们可能采用其他方式,但如果您尝试跟踪和修改以符合您的要求。
Get-ADUser -Filter 'enabled -eq $false' -Searchbase "OU..." | where {$_.distinguishedname -match "Users"}
您还可以在-and $_.distinguishedname -notmatch "Shared|mailbox|Resource|SVC
中包含这一切,这完全取决于您尝试过滤搜索的内容。
如果发现首先使用上述内容生成用户列表,然后检查此列表然后将其过滤掉。
完成后,您应该将其分配给变量,然后对每个用户执行foreach循环。