Глядя для извлечения информации с помощью 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
Это все еще предполагает, что текстовый файл содержит имена групп (атрибут "Имя"), только с одним именем группы в строке.