2014-09-11 3 views
-1

Ive была поставлена ​​задача поиска файла CSV с более чем 1000 именами компьютеров в нем. Мне было интересно, есть ли способ поиска AD с Get-ADComputer с помощью CSV-файла для имен компьютеров и возврата вывода, если они существуют в активном каталоге. До сих пор я не мог придумать ничего, кроме как сделать это вручную.Поиск powershell по CSV для имени компьютера

ответ

0

Вы можете запросить имена компьютеров из csv, но это может занять некоторое время на 1000 компьютеров.

Альтернатива заключается в создании фильтра LDAP из computernames в CSV-файл, и сделать это на одну операцию:

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

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

Get-ADComputer -LDAPFilter $Filter 
+0

Определенно начало. Я могу попробовать и работать с этим –

+0

Import-Module ActiveDirectory $ ComputerNames = Import-Csv c: \ computers.csv | выберите -ExpandProperty ИмяКомпьютера $ NameFilters = $ ComputerNames -replace '^', '(' -replace '$', ')' $ Filter = "'(| $ NameFilters)" Get-ADComputer - LDAPFilter $ Фильтр Woudl, который работает? Кажется, что он работает, но не показывает результат. –

+0

Что входит в переменную $ ComputerNames? Должен быть массив всех имен компьютеров. – mjolinor

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», если любой заголовок столбца содержит имя компьютера.

(отредактирован, чтобы добавить пояснения и полное имя командлета).

Смежные вопросы