Глядя для извлечения информации с помощью powershell

Мне нужно извлечь информацию, используя командлет powershell и текстовый файл.

Файл TXT содержит список групп

Я хочу сначала скормить сценарий powershell... довольно просто:

get-content c:\scripts\mygroups.txt

Затем я хочу выполнить для него командлет Foreach-object и вытянуть только различающееся имя

Проблема в том, что я продолжаю сталкиваться с -Filter команда, и я не должен нуждаться в команде фильтра, потому что имена точно взяты из AD.

Foreach-Object {Get-ADGroup -Filter "*" | select DistinguishedName} работает, но я не хочу все группы, я хочу переменную, которую я использовал для get-content команда. Я чувствую, что мне не хватает какой-то связи между -Filter и выбрав поле, которое я хочу отобразить. Пожалуйста, помогите мне связать два вместе. Спасибо!

Вот ошибка, которую я получаю... Cannot convert 'System.Object[]' to the type 'Microsoft.ActiveDirectory.Management.ADGroup

3 ответа

Передайте содержимое файла в Get-ADGroup Командлет и разверните DistinguishedName каждого выходного объекта:

Get-Content c:\scripts\mygroups.txt | 
Get-ADGroup | 
Select-Object -ExpandProperty DistinguishedName

Предполагая, что каждое имя группы находится на строке в файле и нет пустых строк, попробуйте это:

Get-Content c:\scripts\mygroups.txt | Foreach {Get-ADGroup $_} | 
    Select DistinguishedName

Вы могли бы на самом деле убрать часть "Foreach" кода Кейта и просто позволить конвейеру сделать цикл для вас:

Get-Content c:\scripts\mygroups.txt | Get-ADGroup | Select DistinguishedName

Это все еще предполагает, что текстовый файл содержит имена групп (атрибут "Имя"), только с одним именем группы в строке.

Другие вопросы по тегам