Comment get le "Nom d'affichage" de l'user AD au lieu du nom d'ouverture de session (domain \ userid) lors de l'export des permissions "envoyer comme" et "plein"?

J'ai googlé et créé deux scripts. (1), (2)

(1) Le premier consiste à exporter "Accès complet" d'une boîte de courrier électronique partagée appelée "ap.cz"

Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tossortingng() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select Identity,User,@{Name='Access Rights';Expression={[ssortingng]::join(', ', $_.AccessRights)}} | Export-Csv \\myserver\c$\fulla.csv –NoTypeInformation 

(2) Deuxième consiste à exporter "Send As" d'une boîte de courrier électronique partagée appelée "ap.cz"

 Get-Mailbox ap.cz | Get-ADPermission | where { ($_.ExtendedRights -like “*Send-As*”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select Identity, User, Deny | Export-CSV \\myserver\c$\sendass.csv 

Les deux scripts fonctionnent bien.

La sortie pour (1) est similaire à celle-ci

entrez la description de l'image ici

La sortie pour (2) est similaire à celle-ci

entrez la description de l'image ici

Mais pour les deux occasions, je reçois " User logon name " dans le format ( domain\userid ) où userid est un numéro dans mon organisation.

Mais je dois avoir display name/full name au lieu de " User logon name " tout en exportant vers csv ..

Je ne suis pas un administrateur d'échange ou bien versé en échange / powershell, mais je vérifie / soutient l'infrastructure informatique globale, et quand un gestionnaire request une list de noms, pour "envoyer comme" ou "access complet" pour un certain boîte aux lettres, je dois l'exporter en utilisant les scripts ci-dessus et reconfigurer le "user logon name" pour display name manuellement.

Quelqu'un peut-il conseiller comment changer les deux scripts pour afficher "full name/display name" au lieu du login name de login name ? J'ai essayé googlin, mais pas de chance …

Enfin, j'ai eu de l'aide avec mon ami de programmation (Qui ne sait rien sur les objects AD) et s'est retrouvé avec une solution ci-dessous. Ce n'est peut-être pas la solution idéale, mais les deux fonctionnent, ça gagne le but! Je souhaite partager la solution, afin que quelqu'un puisse bénéficier ou suggérer une meilleure solution ..

(1) Le premier consiste à exporter "Accès complet" d'une boîte de courrier électronique partagée appelée "ap.cz"

  $users=Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tossortingng() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} | Select User $num=$users.length for ($i=0; $i -lt $num; $i++) { Try { $item=$users[$i] $itemcast=[ssortingng]$item $b = $itemcast.Split("\")[1] $c=$b.Split("}")[0] Get-ADUser -identity $c -properties DisplayName | select DisplayName } catch { $error="error" } } 

(2) Deuxième consiste à exporter "Send As" d'une boîte de courrier électronique partagée appelée "ap.cz"

  $users=Get-Mailbox ap.cz | Get-ADPermission | where { ($_.ExtendedRights -like “*Send-As*”) -and ($_.IsInherited -eq $false) -and -not ($_.User -like “NT AUTHORITY\SELF”) } | Select User $num=$users.length for($i=0; $i -lt $num; $i++) { Try { $item=$users[$i] $itemcast=[ssortingng]$item $b = $itemcast.Split("\")[1] $c=$b.Split("}")[0] Get-ADUser -identity $c -properties DisplayName | select DisplayName } catch { $error="error" } } 

les deux scripts ont été enregistrés sous script1.ps1 et script2.ps1 et la sortie a été enregistrée dans le file sortant c: \ araa.csv

Comment exporter vers csv

  script2.ps1 | out-file c:\araa.csv 

Powershell d'une autre manière,

 $gadu=get-aduser username -properties * $gadu.Displayname 

Enregistrez la sortie dans un var, puis ajoutez le nom du file que nous voulons regarder à la fin de la var, pensez à la table $ gadu var, pas aussi chic que le formatting ci-dessus, mais est encore pratique. Le get-aduser peut être amusant sur les champs qu'il produit, donc j'utilise les -properties * 99% du time.