【问题标题】:Powershell - Get-aduser -filter EmailAddressPowershell - 获取广告用户 -filter EmailAddress
【发布时间】:2020-11-16 07:12:15
【问题描述】:

我正在努力通过搜索电子邮件地址从 AD 获取 SamAccountName。我有一个包含电子邮件地址但需要获取 SamAccountName 的 CSV。 "write-host $user.EmailAddress" 正确打印电子邮件地址,Get-ADuser 没有给出任何错误,但 "write-host $CurrentUser" 打印一个空行

foreach($user in $users)
{
write-host $user.EmailAddress
    #$CurrentUser = Get-ADUser -filter "EmailAddress -eq '$($user)'"
    #$CurrentUser = Get-aduser -Filter { "mail -eq '$($user.EmailAddress)'"} -Properties mail
    $CurrentUser = Get-ADUser -Filter { mail -eq "$($user.EmailAddress)"} -properties SamAccountName
    write-host $CurrentUser

我尝试了一些我在网上找到的不同的 sn-ps,但无法让它工作

Powershell 版本:5

【问题讨论】:

  • 如果您手动运行Get-ADUser,只使用$Users 列表中的一个 条目,它可以工作吗?
  • 语法-Filter "property -operator 'value'" 始终有效

标签: powershell


【解决方案1】:

让自己摆脱 Active Directory 过滤器的黑魔法。试图正确引用“$object.property”太麻烦了。事实是,这是反复试验,没有人了解它是如何工作的。 -filter 的类型甚至不是脚本块而是字符串,但即使是文档似乎也希望您将其作为脚本块传递。请参阅文档中 -Filter 下的 Backus-Naur 表格。 https://docs.microsoft.com/en-us/powershell/module/addsadministration/get-aduser?view=win10-ps

$emailaddress = $user.emailaddress
get-aduser -filter { mail -eq $emailaddress }

【讨论】:

  • 同意!之前遇到过字符串 vs ScriptBlock 问题。
  • 我想这只是昨天的那些日子之一,即使在这里尝试你们的建议我也无法让它发挥作用,我今天从头开始,不到 10 分钟让它工作。感谢大家的帮助
  • ###记住 - 使用“Gmailified”电子邮件和云邮件,记录不同### $emailaddress = $user.emailaddress get-aduser -filter { msDS-cloudExtensionAttribute1 -eq $电子邮件地址}
猜你喜欢
  • 2022-11-10
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 1970-01-01
  • 2014-02-02
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
相关资源
最近更新 更多