2015-11-02 4 views
0

Je suis en train d'exporter une liste CSV de toutes les boîtes aux lettres dans un groupe de distribution:Export d'une liste de toutes les boîtes aux lettres dans un groupe de distribution

Get-DistributionGroupMember -Identity "GroupA" 

qui me donnera une liste du nom de tout le monde. Cependant, j'ai aussi besoin de leur PrimarySmtpAddress. Le problème est quand je lance un script:

$Users = Get-DistributionGroupMember -Identity "GroupA" 

foreach ($User in $Users) { 
    Get-Mailbox -Identity $User | Select-Object DisplayName, PrimarySmtpAddress 
} 

Je reçois l'erreur suivante:

Cannot process argument transformation on parameter 'Identity'. Cannot convert the "@Name{Bob Smith}" value of the type "Deserialized.Selected.Microsoft.Exchange.Data.Directory.Management.ReducedRecipient" to type "Microsoft.Exchange.Configuration.tasks.MailboxIDParameter".

Répondre

0

je me suis dit cela. En changeant l'ajout .name à $User il a transmis l'information correcte à Get-Mailbox.

Il a passé correctement les informations à travers et j'ai pu faire alors ce

$List foreach ($User in $Users) { 
    Get-Mailbox -Identity $User.name | 
    Select-Object DisplayName, PrimarySmtpAddress 
} 

$List | Export-Csv C:\ExportedList.txt 

je devais déplacer le Export-CSV à l'extérieur de la boucle foreach. En ajoutant tous les résultats foreach à $List j'ai été capable d'exporter la liste entière. Si le Export-Csv était à l'intérieur de la boucle foreach, il n'exporte qu'un seul résultat. La manière ci-dessus était le moyen le plus facile pour moi de mettre en œuvre cela.

+0

Vous auriez aussi pu faire ceci: '$ Users = Get-DistributionMember -Identity" GroupA "| Select-Object -Expand Name' –

+0

Oh d'accord. Je vous remercie. J'étais sûr qu'il y avait un moyen de le faire plus facilement, mais j'étais en train de travailler à l'envers pour trouver comment faire fonctionner ça. – Spastek

+0

Oh je pense que vous vouliez dire 'Get-DistributionGroupMember' et non' Get-DistributionMember' – Spastek