如何解决成功获得 DL 成员 - 但如何检查和列出嵌套组和成员?
我的脚本从我的 txt 文件中列出的每个 DL 中提取成员,但有一些将安全组作为成员,我也想列出这些组中的成员。
set-adserversetting -viewentireforest $true
$groups = Get-Content -path 'C:\Users\test.txt'
$result =
foreach ($group in $groups) {
$members = Get-distributionGroupMember -$group -ResultSize Unlimited
foreach ($user in $members) {
[PSCustomObject]@{
GroupName = $group
samAccountName = $user.samAccountName
distinguishedname = $user.distinguishedname
name = $user.name
}
}
}
$result | export-csv 'C:\Users\testing.csv' -notypeinformation
解决方法
为此您需要一个递归函数。
试试:
function Get-NestedDistributionGroupMembers {
[CmdletBinding()]
param (
[Parameter(Mandatory = $true,ValueFromPipeline = $true)]
[string]$Group
)
# Identity can be Name,Alias,DistinguishedName,CanonicalName,EmailAddress or GUID
Get-DistributionGroupMember -Identity $Group -ResultSize Unlimited | ForEach-Object {
if ($_.RecipientTypeDetails.Value -match "Group") {
Get-NestedDistributionGroupMembers $_.Name
}
else {
[PSCustomObject]@{
GroupName = $Group
SamAccountName = $user.samAccountName
DistinguishedName = $user.distinguishedName
Name = $user.name
}
}
}
}
$groups = Get-Content -Path 'C:\Users\test.txt'
$result = foreach ($group in $groups) {
Get-NestedDistributionGroupMembers $group
}
$result | Export-Csv -Path 'C:\Users\testing.csv' -NoTypeInformation
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。