【问题标题】:How to retrieve only enabled users from the Active Directory如何从 Active Directory 中仅检索已启用的用户
【发布时间】:2018-11-29 22:20:02
【问题描述】:

我正在尝试仅检索 AD 中已启用的用户。当我运行此代码行时,它会返回错误。我也尝试使用过滤器来仅过滤已启用的用户以获取请求的信息,但它会返回来自每个域的所有用户,而不仅仅是单个 id。

Get-ADUser : A positional parameter cannot be found that accepts argument 'enabled -eq 'true''.

这是我抛出错误的代码。

Get-ADGroupMember -Identity 'Animal Shop A' | Get-ADUser -Filter '*' | Get-ADUser Where "enabled -eq 'true'" | Get-ADUser -Properties ('Mail')

这个返回每个域的所有用户

Get-ADGroupMember -Identity 'Animal Shop A' | Get-ADUser -Filter "enabled -eq'true'" | Get-ADUser -Properties ('Mail')

我的语法对它们都有错吗?如果我只想从“Animal shop A”然后“Animal Shop B”返回值

【问题讨论】:

  • 这里的整个问题是"enabled -eq'true'" 应该是"enabled -eq $true"

标签: powershell active-directory


【解决方案1】:

.. 或者这样短一点:

Get-ADUser -Filter 'enabled -eq $true' -Properties mail | 
    Select-Object -Property Name,samaccountname,mail

除此之外,我建议使用-SearchBase。这对 AD 来说压力较小。 ;-)

【讨论】:

  • 奥拉夫获胜
  • ;-) ... 结果很重要,而且是一样的。不过谢谢。
  • 更短且无别名!好厉害的小伙伴。
【解决方案2】:
Get-ADUser -Filter * -Properties mail | Where { $_.Enabled -eq $True} | Select Name,samaccountname,mail

这将获取目标域中所有已启用的用户并显示名称、用户名和邮件属性

【讨论】:

  • 请注意,这将询问 每个 用户的 AD,并且只有在将所有这些结果下载到您的计算机后,过滤才会在内存中完成。 Olaf 的回答将确保您只向 AD 询问您需要的内容,从而节省时间和内存。
【解决方案3】:
get-aduser -filter 'enabled -eq "true"' -ResultSetSize $Null 

【讨论】:

    【解决方案4】:

    了解这两个命令很重要: 您必须使用提升的 powershell 进程。 否则结果可能不完整。

    【讨论】:

      【解决方案5】:

      只需以管理员权限在 powershell 中尝试以下命令。 作为指导,第一部分将过滤用户,第二部分过滤启用的用户,最后一部分将为您导出结果。

      Get-ADUser -Filter * -Property Enabled | Where-Object {$_.Enabled -like “false”} | Export-Csv -Path C:\eport.csv -Encoding ascii -NoTypeInformation

      希望对你有用。

      【讨论】:

      • 请注意,这将询问 每个 用户的 AD,并且只有在将所有这些结果下载到您的计算机后,过滤才会在内存中完成。 Olaf 的回答将确保您只向 AD 询问您需要的内容,从而节省时间和内存。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      相关资源
      最近更新 更多