Если я правильно понял вопрос, ваш код почти делает то, что вы хотите, теперь он также показывает только другие объекты AD, а не только пользователей.
Если это так, вам нужно вставить Where-Object
Предложение для фильтрации всех объектов, не относящихся к пользователю:
$UserList = Get-ADGroupmember -Identity adgroup -Recursive |
Where-Object { $_.objectClass -eq 'user' } | ForEach-Object {
Get-ADUser -Identity $_.SamAccountName | Select-Object UserPrincipalName
}
Это вернет массив объектов . Если вам нужен массив строк (только UserPrincipalNames), добавьте параметр ExpandProperty
к объекту выбора:
Select-Object -ExpandProperty UserPrincipalName
PS Если вы хотите только получить список пользователей, прямой член группы, вы можете удалить переключатель -Recursive