powershell - 使用 get-aduser 过滤多个用户

标签 powershell active-directory

我是 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/

相关文章:

powershell - 设置-Acl : Requested registry access is not allowed

c# - 如何检查 LDAP 用户是否存在/活跃?

c# - ActiveDirectory PrimaryContext 出现未知错误 (0x5011)

java - 在一个域中进行身份验证并在 Java 中查询另一个域中的用户

arrays - powershell 截断仓库名称

powershell - 如何将 $input 自动变量转换为列表(在结束 block 中)?

powershell - 如何使用 PowerShell v4 将成员从一个安全组复制到 AD 中的另一个安全组?

powershell - 使用 PowerShell 的日期差异

java - Gradle 代理配置

active-directory - 如何使用 LDAP 请求启用或禁用 AD 用户帐户?