Меня попросили создать список групп безопасности (в частности, не групп рассылки), к которым принадлежит список из примерно 50 пользователей.
У меня есть список пользователей, users.txt
который содержит каждое имя пользователя в новой строке. Я хочу создать membership.txt
который содержит имя пользователя и список групп безопасности, членом которых является пользователь, разделенные запятыми.
Скрипт Powershell, который я написал до сих пор, выглядит следующим образом:
$users = Get-Content C:\users.txt
ForEach ($User in $users) {
$getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof
$User + ',' + $getmembership | Out-File -Append c:\membership.txt
}
Это почти работает, но для двух проблем:
OU=Security Groups,OU=City,DC=domain,DC=com CN=Senior Leaders
, но единственная информация, которую я действительно хочу, это Senior Leaders
. Как я могу вырезать всю лишнюю информацию?Расширьте свой Get-ADUser
линия:
$getmembership = Get-ADUser $User -Properties MemberOf | Select -ExpandProperty memberof | Get-ADGroup -Properties name | Where { $_.GroupCategory -eq 'Security' } | Select -ExpandProperty Name
Это передаст DN группы в Get-ADGroup
чтобы получить дополнительные свойства, затем отфильтруйте категорию группы и выберите имя группы (вместо DistinguishedName).