我是 powershell 的新手,必须根据名称列表从 AD 中获取用户。有没有办法使用类似于 SQL 中的 in-statement 的东西从 AD 中过滤? (select * from users where name in ('Joe','Bill)?
至于现在我在 foreach 循环中获取用户并将它们添加到数组列表中,但我不知道这是否是一个好习惯:
function GetUsers()
{
$dummydata = @('Bill','Joe','Sam')
$users = New-Object System.Collections.ArrayList($null)
foreach($user in $dummydata)
{
$aduser = get-aduser -f {GivenName -eq $user} -Properties * | select *
$users.add($aduser) | Out-Null
}
Return ,$users
}
最佳答案
你可能想把它放到一个函数中:
$dummydata = @('Bill','Joe','Sam')
$filter =
[scriptblock]::create(($dummydata| foreach {"(GivenName -eq '$_')"}) -join ' -or ')
Get-ADUser -f $filter
关于powershell - 使用 get-aduser 过滤多个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268168/