Powershell结合Get-ADUser结果

时间:2014-12-02 21:50:29

标签: powershell active-directory hashtable powershell-v4.0

我有一个用于管理群组成员身份的脚本,但在搜索多个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
}

是否有一种简单的方法来组合生成的哈希表,或者最好是简单地创建一个新的哈希表并将结果添加到其中?

1 个答案:

答案 0 :(得分:2)

你的第二次尝试已经结束了。尝试在$Users = @()之前添加Foreach+=运算符过载,因此可以选择错误的操作。将变量初始化为空数组可以清楚地说明您想要的内容:

$Users = @()
Foreach ($OU in $SearchOUs)
{
    $Users += Get-ADUser -LDAPFilter $LDAPString -SearchBase $OU
}

此外,它是一个数组,而不是哈希表。那些是截然不同的。