Я начал сценарий, который сравнивает имя пользователя в AD с определенным названием задания из CSV, а затем перечисляет все группы (и группы внутри групп), которые пользователь член.Сценарий для перечисления пользователей и всех групп, в которых они входят
Я проверил функцию под первым комментарием и работает как ожидалось, перечисляя все группы для пользователя.
Следующая часть скрипта не работает должным образом, когда я пытаюсь использовать вывод списка пользователей в качестве переменной для своей функции, я получаю только список групп, в которых все пользователи являются членами группы, а не группы и пользователей.
Теперь я получаю следующий результат:
Group1 Group2 Group3 Group2 Group3 Group4
Мой идеал из пут будет что-то вдоль линий:
User MemberOf ---- -------- Bob Group1, Group2, Group3.... Jim Group2, Group3, Group4....
Код:
#Function to recursively check account for group membership
function Get-SubGroups ($account)
{
$ErrorActionPreference = "SilentlyContinue"
$groups = Get-ADPrincipalGroupMembership $account
$allGroups =$null
while ($groups)
{
$allGroups += $groups.Name
$groups = $groups.Name | Get-ADPrincipalGroupMembership
}
$allGroups
}
#CSV with list of job titles and command to get the first user with a job title
$titles = Get-Content 'B:\JobTitles.csv'
#Command to get the list of groups for each user
$users = foreach ($title in $titles)
{
Get-ADUser -Filter 'Title -Like $title' -Properties Name, SamAccountName, MemberOf, Title | select -First 1
}
foreach ($user in $users)
{
Get-SubGroups $user | Write-Output
}
Я проверил и это работает для моей среды, благодаря – Ralluhb