Хорошо, у меня другая проблема, вероятно, связанная с невозможностью правильно хранить значения. Первоначальная идея заключалась в том, чтобы получить список пользователей и разделить их имена на два значения - givenName
и sn
, чтобы командлет Get-ADUser
мог использовать их с помощью опции -Filter
.
Хотя идея была отличной и решена, я, возможно, упустил из виду тот факт, что когда у людей есть 2 имени или фамилии, это не вариант, поскольку вы не можете легко предсказать это в коде. Другой вариант, который я нашел, - это атрибут displayName
. Поскольку наши displayNames равны полному имени пользователя, это был бы самый простой вариант. Однако я не могу успешно сохранить значения из txt файла в переменной, чтобы он работал.
Мой код сейчас выглядит так:
Import-Csv -Path C:\temp\users.txt -header "displayName" |
ForEach-Object{ Get-ADUser -Filter "displayName -like '$($_.displayName)'" -Properties givenName, Surname, SamAccountName
} |
Select-Object givenName, Surname, SamAccountName |
Export-CSV C:\Temp\usersexport.csv -NoTypeInformation -Encoding UTF8
- В txt файле есть структура вроде такой:
John Smith Jones
Paula Ridley
Veronica Anne Downing
etc...
Таким образом, мы действительно не говорим о файле CSV, а имена пользователей находятся в отдельной строке.
Импорт работает нормально, проблема, на мой взгляд, связана с введением выбранного значения из файла, которое не является ни фактической строкой, ни каким-то образом не регистрируется параметром -Filter
.
В приведенном выше коде я удалил переменную, которая использовалась для хранения значений, поскольку не было изменений, даже если она была там.
У меня также есть попытался указать -Delimiter
"` n ", чтобы указать разделение значений внутри txt файла на новой каждой строке, но либо я не использовал символ записи, либо это не работает. РЕДАКТИРОВАТЬ:
Проблема, которая возникает после запуска моего кода, заключается в том, что мой экспортированный файл CSV имеет только следующую запись: 
. Я понятия не имею, почему, если честно, и это не меняется ни на что, но, как я уже сказал, вполне возможно, что формат, в котором имена внутри txt файла, неверен.
Если я правильно понимаю , -Filter
в любом случае запускает заданное значение в строку, поэтому я полагаю, что проблема с именами файлов txt, которые не были специально сформированы перед руками, не является причиной этого.