2015-12-11 5 views
1

Я создал нижеPowershell скрипт для отображения всех пользователей в группе AD

Get-ADGroup -Filter * -SearchBase "DC=Domain,dc=.com" -properties name, members | 
    Select-Object *,@{Name='Member';Expression={$_.Members -replace '^CN=([^,]+).+$','$1'}} | 
    FT Name, Member -Autosize | 
    out-file c:\text.txt 

Игнорирование домен и .com Я им заселен с моей соответствующей информацией, но ради здесь удалил их.

При запуске этого он возвращает то, что я после, но при взгляде на членов в группе все они заканчиваются ... и не показывают все члены

+1

трубы в формате CSV вместо. Это формат-таблица, которая выводит на экран вывод inorder для его отображения. 'Select-Object реквизит | Export-CSV -NoType C: \ text.txt' – Matt

+0

что экспорт CSV искажает все текстовый файл :("9e210fe47d09416682b841769c78b8a3" ,,,,, "27c87ef9bbda4f709f6b4002fa4af63c" ,,,,, "27c87ef9bbda4f709f6b4002fa4af63c" ,,,,, –

+0

Замените 'FT Name, Member -Autosize' на' Out-String'? – sodawillow

ответ

1

Есть несколько вещей, чтобы исправить , Давайте посмотрим на них в порядке. Фактический запрос AD может быть упрощен: вам нужно только указать «члены» в качестве дополнительного свойства для получения как «Name» возвращается по умолчанию:

Get-ADGroup -Filter * -SearchBase "DC=Domain,dc=.com" -properties members 

Учитывая, что вы хотите только вывести два свойства (» Name», и ваш один„член“), используйте ваш выбор, чтобы получить только те, которые вы хотите:

Select-Object Name ,@{Name='Member';Expression={$_.Members -replace '^CN=([^,]+).+$','$1'}} 

Удалить Format-Table: мы уже ограничили выбор в предыдущей команде. Командлеты формата предназначены для форматирования вывода в окне консоли, и наилучшая практика диктует, что они должны использоваться только для этой цели и что они всегда должны быть последним элементом конвейера.

Piping все, что Экспортно-Csv будет производить то, что вы хотите:

Export-Csv -NoTypeInformation -Path C:\text.csv 
+0

Спасибо, что это именно то, что я был после, все еще пытаясь окунуться в PowerShell, так как только начал заглядывать в него. On сторона примечания есть способ расширить на -фильтр, чтобы включить только часть имени группы? –

+0

Параметр фильтра сделает ваши запросы AD быстрее, так как использование ограничивает область этого запроса. Короче говоря, это примерно так: 'Get-ADGroup -Filter 'Name-like" SomeGroupNamePrefix * "'. Я бы посоветовал обратиться за помощью к командлету:' Get-Help Get-ADGroup -Fu ll' – ConanW

+0

Буду признателен за участие в голосовании, если вы нашли это сообщение – ConanW

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