Получить имя Samaccount из отображаемого имени в .csv - PullRequest
0 голосов
/ 06 июня 2019

У меня есть файл .csv с displayName , а затем отображаемые имена пользователей.

Я выполняю следующий код, но возвращенный файл .csv пустым 0 КБ.Я потратил на это часы и не могу понять, что я делаю неправильно.

(я даже пытался переключить displayName на «DisplayName», но это не работает)

Get-Content C:\Scripts\displaynames.txt | ForEach {
   Get-ADUser -Filter "DisplayName -eq '$user'" -Properties Name, SamAccountName, City, co, DistinguishedName | 
Select Name,SamAccountName, City, co, DistinguishedName
} | Export-CSV -path C:\output\paininthebut.csv -NoTypeInformation

Мне просто нужно просто вернуть displayName = samaccountname

Ответы [ 2 ]

1 голос
/ 07 июня 2019

Если ваш файл на самом деле является Csv-файлом с заголовком для каждого столбца,
и displayname являются одним из них - тогда используйте Import-Csv для получения данных.

ForEach-Object использует переменную $_ или, альтернативно, $PSItem, чтобы назначить текущую итерированную строку данных со столбцами в качестве свойств.

Поэтому измените на:

Import-Csv C:\Scripts\displaynames.txt | ForEach {
   Get-ADUser -Filter "DisplayName -eq '$($_.DisplayName)'" -Properties Name, SamAccountName, City, co, DistinguishedName | 
Select Name,SamAccountName, City, co, DistinguishedName
} | Export-CSV -path C:\output\paininthebut.csv -NoTypeInformation

Прочтите этот полезный ответ по вопросу Get-AdUser и -filter из mklement0

0 голосов
/ 25 июня 2019

Хорошо, ребята, я понял проблему.Причина, по которой входной файл возвращал только некоторые имена, заключается в том, что в некоторых именах были пробелы.Например, Доу Джон был написан как Доу, Джон с дополнительным пробелом между последней буквой фамилии и запятой.Чтобы получить только displayName, я использовал следующий скрипт: Import-Csv C: \ Scripts \ inputfile.txt |ForEach {Get-ADUser -Filter "displayName -eq '$ ($ _. DisplayName)'" -Properties Name, SamAccountName |Выберите Имя, SamAccountName} |Экспорт-CSV-путь C: \ output \ outputfile.csv -NoTypeInformation

...