我有一个用于管理群组成员身份的脚本,但在搜索多个OU时遇到了挑战。
目前,在脚本中,我有以下用于查询AD的代码:
$Users = Get-ADUser -LDAPFilter $LDAPString -SearchBase $SearchOU
(...)
Foreach ($User in $Users)
{
If ($User.distinguishedName -notin $Members.distinguishedName)
{
Add-ADGroupMember -Identity $GroupDN -Members $User.distinguishedName -Server $DomainController
}
}
到目前为止,我已经尝试了以下内容,其中$ OU是OU的数组,但我最终只得到了第一个结果。
Foreach ($OU in $SearchOUs)
{
$Users += Get-ADUser -LDAPFilter $LDAPString -SearchBase $OU
}
是否有一种简单的方法来组合生成的哈希表,或者最好是简单地创建一个新的哈希表并将结果添加到其中?
答案 0 :(得分:2)
你的第二次尝试已经结束了。尝试在$Users = @()
之前添加Foreach
。 +=
运算符过载,因此可以选择错误的操作。将变量初始化为空数组可以清楚地说明您想要的内容:
$Users = @()
Foreach ($OU in $SearchOUs)
{
$Users += Get-ADUser -LDAPFilter $LDAPString -SearchBase $OU
}
此外,它是一个数组,而不是哈希表。那些是截然不同的。