Я пишу сценарий PowerShell для получения отчета AD о пользовательской информации.Большая часть отчета работает просто отлично, но у меня возникают проблемы с тем, чтобы членство в группах работало правильно.
Get-ADPrincipalGroupMembership -identity | select name
работает само по себе, чтобы дать мне только чистый список разрешений, но передавая информацию в selectимя не работает внутри моего выражения.Это просто ничего не возвращает.Как я могу отфильтровать только имя для каждой группы, в то же время передавая каждого пользователя для обработки.
Пока ничего из того, что я пробовал, не смогло вернуть отформатированный список.Я всегда получаю слишком много данных или пустой столбец.Я также попытался поиграть с очисткой данных после факта, но я не смог заставить регулярное выражение делать то, что я хочу.Мой (нефункциональный) набросок этого приведен ниже.
#Clean up Group Membership data
$test = Import-Csv $csvfile
$test | ForEach-Object {
$_.Group_Membership = $_.Group_Membership.Replace('(?<=OU=").*?(?=/,)', ' ')
$_.Group_Membership = $_.Group_Membership.Replace('(?<=DC=").*?(?=/,)', ' ')
}
$test | Export-Csv $csvfile -NoType
$AllADUsers = Get-ADUser -Server $ADServer -SearchBase $SearchBase -Properties * -Filter *
$AllADUsers |
Select-Object @{Label="First Name";Expression={$_.GivenName}},
@{Label="Last Name";Expression={$_.Surname}},
@{Label="Display Name";Expression={$_.DisplayName}},
@{Label="Username";Expression={$_.SamAccountName}},
@{Label="Job Title";Expression={$_.Title}},
@{Label="Company";Expression={$_.Company}},
@{Label="Email";Expression={$_.Mail}},
@{Label="Account Status";Expression={if (($_.Enabled -eq 'TRUE')) {'Enabled'} else {'Disabled'}}},
@{Label="Last LogOn Date";Expression={$_.LastLogonDate}},
@{Label="Group_Membership";Expression={$_.SamAccountName | Get-ADPrincipalGroupMembership}} |
Export-Csv -Path $csvfile -NoTypeInformation
После запуска этого скрипта мне нужен CSV-файл, в котором приведена информация выше и только список групп безопасности, нокак это работает сейчас, я получаю все, и это грязно.