2014-09-11 74 views
-1

我一直在搜索其中包含1000多个计算机名称的CSV文件。我想知道是否有一种方法可以通过Get-ADComputer通过计算机名称的CSV文件来搜索AD,并在输出存在于活动目录中时返回输出。到目前为止,除了手动完成之外,我一直无法做出任何事情。以CSV格式查询计算机名称的powershell

回答

0

您可以通过csv中的计算机名称进行foreach,但是对于1000台计算机可能需要一段时间。

另一种方法是建立从在CSV的computernames LDAP过滤器,并执行它的一个操作:

$ComputerNames = Import-Csv c:\somedir\computers.csv | 
select -ExpandProperty ComputerName 

$NameFilters = $ComputerNames -replace '^','(Name=' -replace '$',')' 
$Filter = "'(|$NameFilters)'" 

Get-ADComputer -LDAPFilter $Filter 
+0

绝对是一个开始。我可以尝试使用该工具 – 2014-09-11 14:34:31

+0

Import-Module ActiveDirectory $ ComputerNames = Import-Csv c:\ computers.csv | 选择-ExpandProperty计算机名 $ NameFilters = $ ComputerNames -replace '^', '(' -replace '$', ')' $筛选= “ '(| $ NameFilters)'” GET-ADComputer - LDAPFilter $ Filter Woudl工作?它似乎运行,但不显示输出。 – 2014-09-11 14:44:53

+0

$ ComputerNames变量中有什么?应该是所有计算机名称的数组。 – mjolinor 2014-09-11 14:55:25

0
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名称)。

相关问题