抓住大量数据并将其从依赖依赖的Get-Aduser查询中传递给CSV



我们的用户在命名标准方面有较小但烦人的差异,这些用户宽松地遵循,使脚本痛苦。该公司已经大约有一段时间了,具体取决于雇用员工时在其中工作的人,如果遵守了任何命名公约。

在一个森林中,我们有从a-开始的帐户,该帐户的经理属性是帐户所有者其他/主帐户的DN,而没有许多其他常见属性。然后,我需要查找经理帐户并获取他们的SamAccountName。然后,我需要将s-添加到SamAccountName并进行搜索以查看是否存在。

然后,我需要编写原始的SamAccountName,第二个SamAccountNames-SamAccountName,如果它是CSV的有效帐户名,则需要像复选框一样。

没有重写脚本并传递到var的所有内容,然后处理我看不到的方法。该脚本三次查找大约800个用户和流程,因此在不使用一堆VAR传输减速的情况下运行已经需要一段时间。

$test = get-aduser -ldapFilter "(SamAccountName=a-*)" -Server XXX.int:3268 -Properties manager |
Select -ExpandProperty manager | Get-ADUser -Server XXX.int:3268 |
Select -ExpandProperty samaccountname 
$test

您可以做类似的事情来使您开始。

$test = get-aduser -ldapFilter "(SamAccountName=a-*)" -Server XXX.int:3268 -Properties manager |
    Select-Object SamAccountName,
        @{n='Manager';e={Get-ADUser $_.Manager -Server XXX.int:3268 | Select -Expand SamAccountName}},
        @{n='s-Manager';e={Get-ADUser "s-$($_.Manager)" -Server XXX.int:3268 | Select -Expand SamAccountName}}
$test

我尚不清楚您是否需要将s-添加到经理或原始帐户的SamAccountName。上面的脚本将s-添加到经理的SamAccountName

在需要多个广告查找的脚本中,有时最好做一个较大的查找,然后过滤到您需要的结果。

说明:

脚本的主要技术利用了与Select-Object命令的延迟订阅绑定。原始Get-ADUser命令找到的每个用户对象都将管道管道输送到Select-Object中,并且可以通过管道变量$_访问。可以很容易地更新哈希表选择以满足您的需求。

最新更新