Get-ADPrincipalGroupMembership работает так, как мне нужно в Expression - PullRequest
0 голосов
/ 30 апреля 2019

Я пишу сценарий 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-файл, в котором приведена информация выше и только список групп безопасности, нокак это работает сейчас, я получаю все, и это грязно.

1 Ответ

0 голосов
/ 30 апреля 2019

Как предлагается здесь - ссылка , вы можете использовать

Get-ADPrincipalGroupMembership -identity test | out-string -stream | sls -caseSensitive "name"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...