Meilleur auteur de réponses
Export Get-MailboxPermission -user sur toutes les boites mails

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 : NOMDUSERVEURLe fichier export est vide, et je ne trouve pas de solution.
Auriez-vous une idée ?
Merci par avance pour votre aide.
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.
A bientôt,# 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 ... }
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
- Proposé comme réponse Biliana Mouzaphirova mercredi 22 avril 2020 14:05
- Marqué comme réponse djram82000 jeudi 23 avril 2020 07:49
-
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
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.
A bientôt,# 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 ... }
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
- Proposé comme réponse Biliana Mouzaphirova mercredi 22 avril 2020 14:05
- Marqué comme réponse djram82000 jeudi 23 avril 2020 07:49
-
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 :)
-
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
-
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)