2015-08-27 1 views
0

Le script PowerShell suivant génère un fichier CSV avec trois colonnes (groupe, utilisateur, SAMAccountName) qui associe chaque instance d'un groupe de distribution donnée avec un membre respectif:Script Exchange PowerShell Modification

$ dist = foreach ($ group dans (Get-DistributionGroup -Filter {name-like "*"})) {Get-DistributionGroupMember $ groupe | Sélectionnez @ {Label = "Groupe"; Expression = {$ Group.Name}}, @ {Label = "Utilisateur"; Expression = {$ _. Nom}}, SamAccountName} $ dist | Trier le groupe, utilisateur | Export-CSV c: \ scripts \ file.csv -NoTypeInformation

Il offre à l'utilisateur un moyen pratique de filtrer les groupes et les membres du groupe d'affichage. Ma question: Y at-il un moyen rapide de modifier ce script afin qu'il ajoute une quatrième colonne qui affiche une propriété des groupes (en particulier, la propriété "HiddenFromAddressListsEnabled")?

Répondre

0

Il suffit de l'ajouter à la partie Select-Object

$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 

Voir après la SamAccountName

Pour obtenir les HiddenFromAddressListsEnabled pour les groupes:

$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 

Cependant, il y a une autre façon de faites-le, et plus facile à lire et à manipuler:

$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 
+0

Nous vous remercions de votre réponse. Mon souci ici est que la propriété "HiddenFromAddressListsEnabled" doit s'appliquer au groupe et non aux utilisateurs qui s'y trouvent. Existe-t-il un moyen de configurer cela dans le script original ou doit-il être entièrement repensé? – JFope

+0

J'ai vu la révision et testé le script. Travaillé parfaitement. Merci beaucoup, Avshalom! – JFope