在整个林中获取ADUser?

时间:2019-04-08 20:14:05

标签: powershell active-directory

我需要使用Set-ADUser更新用户的AD帐户的某些属性,但是通过电子邮件识别了该用户,并且我不知道他在我的林的哪个域中。

让我们说我的森林是example.com,其域为south.example.comnortheastwest。电子邮件是每种颜色的,例如red.example.comwhite.pink.等)。

如果我查询全局目录(Get-ADUser -server east.example.com:3268),只需读取属性即可工作,但是结果对象不能用于Set-ADUser(因为duh,global cat是只读的)。

在连续域上,除了ifs阶梯之外,还有其他选择吗?是1)丑陋,2)可能会错过我不知道的其他域(不要问,这很复杂)。

我尝试了Get-ADUser -server example.com(查询根域)-上周工作了,不再工作了,我也不知道为什么-没有错误消息,对象只是空了。

2 个答案:

答案 0 :(得分:1)

此用例在网络上有很多示例...只需使用您的帖子标题进行搜索。

示例:

Powershell to list all users from domains in forest

Import-Module ActiveDirectory
(Get-ADForest).domains | 
% {
    Get-ADUser -filter * -SearchBase "OU=Accounts,$((Get-ADDomain -Server $_).distinguishedname)" -Server $_ | 
    Select Name,sAMAccountName | Export-CSV "C:\$_ User Accounts.csv" -nti
}

另请参见示例:

PowerShell Code: Find User in Active Directory Forest

How to query user across multiple forest with AD powershell

答案 1 :(得分:0)

好的,因此森林上的Get-ADUser可以按上面指定的方式工作-但由于我最初想使用搜索对象来设置Set-ADUser,因此我不得不编写更多代码。

请参阅,Get-ADUser返回“与服务器无关的”对象,这意味着,如果用户位于您所在的其他域中,则将此对象用于Set-ADUser需要提供-Server。

结果代码:

pytest

效果不佳,但效果很好。