下面的脚本列出了一些用户详细信息,仅在我输入了EXACT用户名时才有效。如果我键入部分用户名,是否有可用于获取结果的方法? 我的意思是,例如我输入“elibukin”或“eli.buk”instaed of“eli.bukin”女巫是正确的用户名。
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")
答案 0 :(得分:4)
我会使用带有模糊名称解析(ANR)的-LDAPFilter。
Get-ADUser -LDAPFilter "(anr=smith)"
有关ANR的更多信息,请参阅https://support.microsoft.com/en-us/kb/243299。
答案 1 :(得分:1)
我实际上是在编写一个像这样的脚本。我使用-like运算符来容纳部分匹配。但是,这可能会给你带来不止一个结果。
Get-ADUser -Filter ("SamAccountName -like '*$user*'")
或者使用这种格式来缩小搜索范围:
Get-ADUser -Filter ("SamAccountName -like '*$user*' -and Name -like '*$FirstName*' -and Surname -like '*$Lastname*'")
使用-or
代替-and
获得更广泛的结果。
答案 2 :(得分: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")