【问题标题】:How to validate an email exists in an Active Directory forest如何验证电子邮件是否存在于 Active Directory 林中
【发布时间】:2018-03-21 19:06:11
【问题描述】:

我正在寻找编写一个 PowerShell 脚本来验证文件中的电子邮件列表是否对 Active Directory 林有效。我有一个适用于我的特定域的脚本,但它找不到与公司林中其他域关联的电子邮件。

foreach($line in Get-Content C:\path\emails.txt) {
    if(Get-ADUser -Filter "EmailAddress -like '$line'") {
        "$line is valid"
    }
    else {
        "$line is invalid"
    }
}

结果:

account1@domainA.com is valid
account2@domainA.com is valid
account3@domainB.com is invalid

Account3@domainB.com 返回无效,因为它是另一个域的一部分,但我希望它返回有效,因为它是公司林的一部分。

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    尝试为其他域指定服务器(域控制器):

    $DC = 'DC_name'
    foreach($line in Get-Content C:\path\emails.txt) {
        if(Get-ADUser -Filter "mail -like '$line*'" -Server $DC ) {
            "$line is valid"
        }
        else {
            "$line is invalid"
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用Server 参数,但指定端口3268,因为这是用于全局编录的端口。全局目录是您整个森林的列表。

      Get-ADUser -Filter "EmailAddress -like '$line'" -Server domain.com:3268
      

      domain.com 是您林中任何域的 DNS 名称。

      以下是用于 Active Directory 的各种端口:

      • 389:LDAP - 仅限单个域(如果您不指定任何内容,则为默认值)
      • 3268:全球目录 - 您的整个森林
      • 636:基于 SSL 的 LDAP
      • 3269:基于 SSL 的全局目录

      【讨论】:

        【解决方案3】:

        以下解决方案有效。它采用建议的解决方案的元素并循环通过所有域控制器。我本来希望以某种方式利用 Get-ADForest cmdlet 来避免指定 DC,但这足以解决问题。

        foreach($line in Get-Content C:\path\emails.txt) {
                foreach($DC in Get-Content C:\path\DCs.txt){
                    if(Get-ADUser -Filter "EmailAddress -like '$line'" -Server $DC) {
                        "$line FOUND in $DC"
                        Add-Content -Path "C:\path\validemails.txt" -Value "$line : $DC"
                        break
                    }
                    else {
                        "$line not found in $DC"
                    }
                }
            }
        

        【讨论】:

          猜你喜欢
          • 2023-03-21
          • 2011-03-03
          • 2011-02-14
          • 1970-01-01
          • 1970-01-01
          • 2017-02-27
          • 2012-12-31
          • 1970-01-01
          • 2012-10-30
          相关资源
          最近更新 更多