none
Export Get-MailboxPermission -user sur toutes les boites mails RRS feed

  • Question

  • Bonjour à tout le monde,

    On me demande de vérifier les droits d'accès d'un utilisateur sur toutes les boites mails de l'organisation.

    J'ai testé plusieurs commandes, scripts, mais je n'arrive pas à faire mon export.

    J'ai différents messages d'erreurs, alors que j'arrive à sortir l'information pour un seul compte.

    Exemple de ce que j'ai utilisé et des erreurs :

    Get-Mailbox "DOE John" | Get-MailboxPermission -User "Utilisateur où je dois vérifier les droits" | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}}

    Et j'ai le résultat voulu :

    Identity                                User                                    Access Rights
    --------                                ----                                    -------------
    DOE John                           Utilisateur où je dois vérifier les droits                      FullAccess
    DOE John                            Utilisateur où je dois vérifier les droits                     FullAccess, DeleteItem, ReadPermissi...


    Et mon export en CSV est OK aussi.

    Mais dès que je veux faire la globalité d'Exchange via la commande suivante :

    Get-Mailbox -resultsize unlimited | Get-MailboxPermission -User "Utilisateur où je dois vérifier les droits" | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} | Export-csv "D:\Export-FA-$(Get-Date -UFormat '%Y%m%d').csv" -notype

    J'ai l'erreur suivante :

    Sending data to a remote command failed with the following error message: [ClientAccessServer=NOMDUSERVEUR,BackEndServer
    =NOMDUSERVEUR,RequestId=01d715a3-0140-415c-a039-f7525f0fa2c9,TimeStamp=22/04/2020 09:03:11]
    [FailureCategory=WSMan-Others] The data in the command exceeded the maximum size that is allowed by the session
    configuration. The allowed maximum is 500 MB. Change the input, use a different session configuration, or change the
    "PSMaximumReceivedObjectSizeMB" and "PSMaximumReceivedDataSizePerCommandMB" properties of the session configuration on
    the remote computer. For more information, see the about_Remote_Troubleshooting Help topic.
        + CategoryInfo          : OperationStopped: (NOMDUSERVEUR:String) [], PSRemotingTransportExceptio
       n
        + FullyQualifiedErrorId : JobFailure
        + PSComputerName        : NOMDUSERVEUR

    Le fichier export est vide, et je ne trouve pas de solution.

    Auriez-vous une idée ?

    Merci par avance pour votre aide.

    mercredi 22 avril 2020 09:07

Réponses

  • Bonjour,

    tout d'abord, il y a confusion dans ta commande entre Identity et user.

    - Identity = Objet sur lequel on recherche les permissions

    - user = utilisateur qui a une permission sur l'identity.

    Il serait plus simple de créer une petite boucle sur les boites avec un foreach pour obtenir une recherche simplifiée des permissions.

    # Utilisateur recherché: $u=Get-Mailbox "DOE John" $a=get-mailbox -resultsize unlimited foreach ($i in $a) {

    # On recherche les droits de "$u=user" sur la boite de l'identité $i.name get-mailboxpermission -identity $i.name -user $u.name ... }

    A bientôt,



    Thierry DEMAN-BARCELO. Office Apps&Services MVP. MCSE:Enterprise admin, Messaging, Server Infrastructure 2016(89 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate, Security Admin https://base.faqexchange.info

    mercredi 22 avril 2020 11:25
    Modérateur
  • Bonsoir,

    si votre version Powershell est récente, vous devriez pouvoir utiliser l'option "-append" sur la commande export-csv.

    Ne pas oublier de vider le fichier de destination avant chaque lancement du script.

    A bientôt,


    Thierry DEMAN-BARCELO. Office Apps&Services MVP. MCSE:Enterprise admin, Messaging, Server Infrastructure 2016(89 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate, Security Admin https://base.faqexchange.info

    • Marqué comme réponse djram82000 jeudi 23 avril 2020 07:49
    mercredi 22 avril 2020 20:20
    Modérateur

Toutes les réponses

  • Bonjour,

    tout d'abord, il y a confusion dans ta commande entre Identity et user.

    - Identity = Objet sur lequel on recherche les permissions

    - user = utilisateur qui a une permission sur l'identity.

    Il serait plus simple de créer une petite boucle sur les boites avec un foreach pour obtenir une recherche simplifiée des permissions.

    # Utilisateur recherché: $u=Get-Mailbox "DOE John" $a=get-mailbox -resultsize unlimited foreach ($i in $a) {

    # On recherche les droits de "$u=user" sur la boite de l'identité $i.name get-mailboxpermission -identity $i.name -user $u.name ... }

    A bientôt,



    Thierry DEMAN-BARCELO. Office Apps&Services MVP. MCSE:Enterprise admin, Messaging, Server Infrastructure 2016(89 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate, Security Admin https://base.faqexchange.info

    mercredi 22 avril 2020 11:25
    Modérateur
  • Bonjour,

    Merci beaucoup pour ton aide.

    Je dois être à la ramasse aujourd'hui, mais je n'arrive pas à faire mon export.

    Si je fais le code suivant :

    # Utilisateur recherché:
    $u=Get-Mailbox "Utilisateur dont j'ai besoin d'avoir les droits" 
    
    $a=Get-Mailbox -resultsize unlimited
    
    foreach ($i in $a) {
    
      # On recherche les droits de "$u=user" sur la boite de l'identité $i.name
       get-mailboxpermission -identity $i.name -user $u.name | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}} |
       Export-csv "D:\Export-FA-$(Get-Date -UFormat '%Y%m%d').csv" -notype
    }

    J'ai bien mon fichier CSV qui se fait, mais il se remplit d'un utilisateur, se vide, puis se remplit à nouveau, se vide, etc....

    Par contre, en faisant ceci :

    # Utilisateur recherché:
    $u=Get-Mailbox "Utilisateur dont j'ai besoin d'avoir les droits" 
    
    $a=Get-Mailbox -resultsize unlimited
    
    foreach ($i in $a) {
    
      # On recherche les droits de "$u=user" sur la boite de l'identité $i.name
       get-mailboxpermission -identity $i.name -user $u.name | Select Identity,User,@{Name='Access Rights';Expression={[string]::join(', ', $_.AccessRights)}}
    }
    
    Export-csv "\\client\D$\PS\Export\Global\Export-FA-$(Get-Date -UFormat '%Y%m%d').csv" -notype

    J'ai les résultats qui s'affichent dans la fenêtre PSH.

    Désolé si mon souci est bête, mais je ne trouve pas mon erreur (je débute en PowerShell).

    Merci encore :)

    mercredi 22 avril 2020 13:21
  • Bonsoir,

    si votre version Powershell est récente, vous devriez pouvoir utiliser l'option "-append" sur la commande export-csv.

    Ne pas oublier de vider le fichier de destination avant chaque lancement du script.

    A bientôt,


    Thierry DEMAN-BARCELO. Office Apps&Services MVP. MCSE:Enterprise admin, Messaging, Server Infrastructure 2016(89 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate, Security Admin https://base.faqexchange.info

    • Marqué comme réponse djram82000 jeudi 23 avril 2020 07:49
    mercredi 22 avril 2020 20:20
    Modérateur
  • Bonsoir,

    si votre version Powershell est récente, vous devriez pouvoir utiliser l'option "-append" sur la commande export-csv.

    Ne pas oublier de vider le fichier de destination avant chaque lancement du script.

    A bientôt,


    Thierry DEMAN-BARCELO. Office Apps&Services MVP. MCSE:Enterprise admin, Messaging, Server Infrastructure 2016(89 MCPs). MCSA Office 365,Microsoft 365 Certified: Messaging Administrator Associate,Modern Desktop Administrator Associate, Security Admin https://base.faqexchange.info

    Bonjour,

    Je ne connaissais pas du tout cette option.

    Je vais regarder ce qu'elle fait spécifiquement.

    Dans tous les cas, elle m'a sauvée avec l'export.

    Merci pour toute l'aide :o)

    jeudi 23 avril 2020 07:48