JFope
JFope

Reputation: 1

Exchange PowerShell Script Modification

The following PowerShell script generates a CSV file with three columns (Group, User, SAMAccountName) that associates each instance of a given distribution group with a respective member:

$dist = ForEach ($group in (Get-DistributionGroup -Filter {name -like "*"})) { Get-DistributionGroupMember $group | Select @{Label="Group";Expression={$Group.Name}},@{Label="User";Expression={$_.Name}},SamAccountName} $dist | Sort Group,User | Export-CSV c:\scripts\file.csv -NoTypeInformation

It affords the user a convenient way to filter the groups and display group members. My question: Is there a quick way to modify this script so that it adds a fourth column that displays a property of the groups (specifically, the "HiddenFromAddressListsEnabled" property)?

Upvotes: 0

Views: 233

Answers (1)

Avshalom
Avshalom

Reputation: 8889

Just add it to the Select-Object portion

$dist = ForEach ($group in (Get-DistributionGroup -Filter {name -like "*"})) { Get-DistributionGroupMember $group | Select @{Label="Group";Expression={$Group.Name}},@{Label="User";Expression={$_.Name}},SamAccountName,HiddenFromAddressListsEnabled} $dist | Sort Group,User | Export-CSV c:\scripts\file.csv -NoTypeInformation

See it after the SamAccountName

To Get the HiddenFromAddressListsEnabled for the Groups:

$dist = ForEach ($group in (Get-DistributionGroup -Filter {name -like "*"})) { Get-DistributionGroupMember $group | Select @{Label="Group";Expression={$Group.Name}},@{Label="User";Expression={$_.Name}},SamAccountName,{$Group.HiddenFromAddressListsEnabled}} $dist | Sort Group,User #| Export-CSV c:\scripts\file.csv -NoTypeInformation

However, There's another way to do it, and easier to read and manipulate:

$Array = @()
$Groups = Get-DistributionGroup
Foreach ($Group in $Groups)
{
$DGMembers = Get-DistributionGroupMember $Group
Foreach ($Member in $DGMembers)
    {
    $Result = "" | Select GroupName,Member,SamAccountName,HiddenFromAddressListsEnabled
    $Result.GroupName = $Group.Name
    $Result.Member = $Member.Name
    $Result.SamAccountName = $Member.SamAccountName
    $Result.HiddenFromAddressListsEnabled = $Group.HiddenFromAddressListsEnabled
    $Array += $Result
    }

}

 $Array | Export-CSV c:\scripts\file.csv -NoTypeInformation

Upvotes: 0

Related Questions