Вы читаете файл CSV, используя Get-Content
. Это позволяет мне думать, что файл - это просто список пользователей SamAccountNames, каждый в отдельной строке. Нет заголовков.
Возможно, что-то вроде этого:
jdoe
jsmith
Если это так, прочитайте входной файл следующим образом:
$users = Get-Content -Path 'C:\MyScripts\UsersInput.csv'
Чтобы получить массив пользовательских SAMAccountnames.
Если , однако это правильный файл CSV с заголовками, который выглядит примерно так:
"SamAccountName","Email","More","Stuff"
"jdoe","john.doe@yourdomain.com","blah","blah"
"jsmith","jane.smith@yourdomain.com","blah","blah"
Затем вы должны использовать командлет Import-Csv
, чтобы получить записи в качестве объектов и получить массив SamAccountNames из этого:
$users = Import-Csv -Path 'C:\MyScripts\UsersInput.csv' | Select-Object -ExpandProperty SamAccountName
Как только вы получите этот массив, пройдитесь по нему и получите информацию о членстве в группе для каждого пользователя
Непроверенные
$result = foreach ($accountName in $users) {
Get-ADUser –Identity $accountName -Properties DistinguishedName, DisplayName |
Select-Object @{Name = 'User'; Expression = {$_.DisplayName}},
@{Name = 'Groups'; Expression = { ( $_ | Get-ADPrincipalGroupMembership | Select-Object -ExpandProperty name) -join ', '}}
}
$result | Export-Csv "C:\MyScripts\UsersAndTheirADGroups.csv" -NoTypeInformation