Get-ADUser 不准确的用户名

问题描述 投票:0回答:4

下面的脚本列出了一些用户详细信息,它仅在我输入了准确的用户名的情况下才有效。如果我输入部分用户名,是否有一种方法可以用来获取结果? 我的意思是,例如,如果我输入“eli.bukin”女巫的“elibukin”或“eli.buk”是正确的用户名。

do {
    Write-Host "Who r we looking for ?        (type EXIT when u done)"
    $User = Read-Host
    Get-ADUser $User -Properties * |
        fl empl*,title, sam*, disp*, mail*, manager*, depa*, giv*, l, last*,
           logon*, when*
} until ($user -eq "exit")
powershell active-directory powershell-3.0
4个回答
4
投票

我会使用 -LDAPFilter 和不明确的名称解析 (ANR)。

Get-ADUser -LDAPFilter "(anr=smith)"

有关 ANR 的更多信息,请参阅https://support.microsoft.com/en-us/kb/243299


1
投票

我实际上已经编写了一个非常像这样的脚本。我使用 -like 运算符来适应部分匹配。然而,这可能会给你不止一个结果。

Get-ADUser -Filter ("SamAccountName -like '*$user*'")

或者使用这种格式的东西来缩小你的结果:

Get-ADUser -Filter ("SamAccountName -like '*$user*' -and Name -like '*$FirstName*' -and Surname -like '*$Lastname*'")

使用

-or
而不是
-and
以获得更广泛的结果。


0
投票

如果你想要模糊匹配,请使用参数

-Filter
-like
运算符:

do {
  $user = Read-Host -Prompt 'Who are we looking for (type EXIT when done)'
  if ($user -ne 'exit') {
    Get-ADUser -Filter "SamAccountName -like '*$User*'" -Properties * |
      Format-List empl*,title, sam*, disp*, mail*, manager*, depa*, giv*, l,
                  last*, logon*, when*
  }
} until ($user -eq "exit")

0
投票

-过滤器和歧义解析:

Get-ADUser -Filter "anr -eq 'smith'"
© www.soinside.com 2019 - 2024. All rights reserved.