我需要使用Set-ADUser
更新用户的AD帐户的某些属性,但是通过电子邮件识别了该用户,并且我不知道他在我的林的哪个域中。
让我们说我的森林是example.com
,其域为south.example.com
,north
,east
和west
。电子邮件是每种颜色的,例如red.example.com
(white.
,pink.
等)。
如果我查询全局目录(Get-ADUser -server east.example.com:3268
),只需读取属性即可工作,但是结果对象不能用于Set-ADUser
(因为duh,global cat是只读的)。
在连续域上,除了ifs阶梯之外,还有其他选择吗?是1)丑陋,2)可能会错过我不知道的其他域(不要问,这很复杂)。
我尝试了Get-ADUser -server example.com
(查询根域)-上周工作了,不再工作了,我也不知道为什么-没有错误消息,对象只是空了。
答案 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
}
另请参见示例:
答案 1 :(得分:0)
好的,因此森林上的Get-ADUser可以按上面指定的方式工作-但由于我最初想使用搜索对象来设置Set-ADUser,因此我不得不编写更多代码。
请参阅,Get-ADUser返回“与服务器无关的”对象,这意味着,如果用户位于您所在的其他域中,则将此对象用于Set-ADUser需要提供-Server。
结果代码:
pytest
效果不佳,但效果很好。