繁体   English   中英

使用PowerShell如何像使用Get-ADUser一样搜索和筛选一系列导出的Active Directory用户?

[英]Using PowerShell how can I search and filter an array of exported Active Directory users like I can with Get-ADUser?

我有一个PowerShell脚本,用于将CSV文件的内容与Active Directory进行比较。 CSV文件包含AD中已有人员的人口统计信息列表。 列之一是“ emplid”。 此字段中的值对应于AD中用户对象的“ employeeID”属性的值。 因此,我目前使用此“ emplid”属性来交叉引用AD并找到相应的用户帐户。 为此,我使用类似于以下内容的行:

$UserAccounts = $ListOfEmloyeeIDs | ForEach-Object {Get-ADUser -Properties * -Filter {employeeID -Eq $_}}

然后,我将其用于将这些用户帐户添加到安全组中:

$UserAccounts.SamAccountName | ForEach-Object {Add-ADGroupMember -Identity SpecialSecurityGroup -Members $_}

问题出在第一行。 有数千个用户帐户,脚本可能需要几个小时才能运行。 这也导致了广告管理员的投诉。 我要执行的操作是使用以下命令将所有活动AD用户加载到变量中(运行时间不到2分钟):

$ADPeopleActive = Get-ADUser -SearchBase "OU=People,DC=MyAD,DC=com" -Properties EmployeeID -Filter {Enabled -Eq $True}

然后,我想对此数组进行交叉引用,并构建一个SamAccountNames列表,以馈入类似于第二行的内容,以填充我的安全组。

我的问题是我想不出一种方法,可以对使用我使用Get-ADuser与AD进行交叉引用的方式构建的数组进行交叉引用。 有人可以帮忙吗?

就像是

$UserAccounts = $ADPeopleActive| Where-Object { $ListOfEmloyeeIDs -contains $_.EmployeeID }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM