【发布时间】:2014-09-11 13:43:46
【问题描述】:
我的任务是搜索包含 1000 多个计算机名称的 CSV 文件。我想知道是否有办法通过 CSV 文件使用 Get-ADComputer 搜索 AD 以查找计算机名称,如果它们存在于活动目录中,则返回输出。到目前为止,除了手动操作之外,我还没有想出任何办法。
【问题讨论】:
标签: powershell active-directory
我的任务是搜索包含 1000 多个计算机名称的 CSV 文件。我想知道是否有办法通过 CSV 文件使用 Get-ADComputer 搜索 AD 以查找计算机名称,如果它们存在于活动目录中,则返回输出。到目前为止,除了手动操作之外,我还没有想出任何办法。
【问题讨论】:
标签: powershell active-directory
您可以遍历 csv 中的计算机名称,但对于 1000 台计算机,这可能需要一段时间。
另一种方法是从 csv 中的计算机名构建一个 LDAP 过滤器,并在一次操作中完成:
$ComputerNames = Import-Csv c:\somedir\computers.csv |
select -ExpandProperty ComputerName
$NameFilters = $ComputerNames -replace '^','(Name=' -replace '$',')'
$Filter = "'(|$NameFilters)'"
Get-ADComputer -LDAPFilter $Filter
【讨论】:
Import-CSV MyCSV.CSV | Select-Object *,@{n='InAD';e={$n = $_.Name ; IF (Get-ADComputer -filter {Name -eq $n}) {$True} ELSE {$False}}} | Export-CSV MyNewCSV.CSV
在巨型线路上。将“$_.Name”中的“Name”替换为包含计算机名称的列标题。
(已编辑以添加说明和完整的 cmdlet 名称)。
【讨论】: