Come get il nome di "Nome visualizzato" dell'utente AD invece del nome di accesso (dominio \ userid) mentre esport le autorizzazioni "invia come" e "piena"?

Ho googled e ho creato due script. (1), (2)

(1) La prima è quella di esportre "Full Access" di una casella di posta elettronica condivisa "ap.cz"

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

(2) Secondo è quello di esportre "Invia come" di una casella di posta condivisa denominata "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 

Entrambi gli script funzionano bene.

L'output per (1) è simile a quello

immettere qui la descrizione dell'immagine

l'output per (2) è simile a questa

immettere qui la descrizione dell'immagine

Ma per entrambe le occasioni ottengo " User logon name " nel formato ( domain\userid ) where userid è un numero nella mia organizzazione.

Ma ho bisogno di get il display name/full name anziché il " User logon name " durante l'esportzione in csv ..

Non sono un amministratore di scambio o ben esperto in scambio / powershell, ma sto controllando / sostenendo l'infrastruttura IT complessiva e quando un gestore chiede un elenco di nomi, per "submit come" o "accesso completo" per un determinato mail, devo esportrla utilizzando gli script sopra e riconvertire "user logon name" per display name manualmente il display name .

Può qualcuno chiedere consigli su come cambiare entrambi gli script per visualizzare "full name/display name" invece del login name di login name ? Ho provato googlin, ma nessuna fortuna ..

  • Bash 1 liner: come creare una directory per each ora, da 00 a 23?
  • Grafico cactus non mostrato
  • Come posso controllare per una corrispondenza di string e un file vuoto nella stessa istruzione di script if / then bash?
  • Importzione di un grande script SQL in SQL Server?
  • Eseguire il command prima e dopo la printing con CUPS?
  • Come può un amministratore Linux migliorare le proprie capacità di script di shell e di automazione?
  • Come posso gestire una window di command nascosta o minimizzata?
  • Esegui script quando l'utente accede o distriggers
  • 3 Solutions collect form web for “Come get il nome di "Nome visualizzato" dell'utente AD invece del nome di accesso (dominio \ userid) mentre esport le autorizzazioni "invia come" e "piena"?”

    $ user.user.rawidentity elimina il casting di tipo e poche righe più …

    Elenco "Accesso completo"

     $users=Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false} $ss=$users.user.rawidentity | Where-Object {$_ -notlike "s-1*"} foreach ($item in $ss){ $b = $item.Split("\") $c=$b.Split("}")[1] Get-ADUser -identity $c -properties DisplayName | select DisplayName } 

    Elenco "Invia come"

     $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 $ss=$users.user.rawidentity | Where-Object {$_ -notlike "s-1*"} foreach ($item in $ss){ $b = $item.Split("\") $c=$b.Split("}")[1] Get-ADUser -identity $c -properties DisplayName | select DisplayName } 

    Infine, ottengo aiuto con il mio amico di programmazione (che non sa nulla sugli oggetti AD) e finisce con la soluzione sotto. Questo potrebbe non essere la soluzione ideale, ma entrambi stanno lavorando risparmia lo scopo !! Desideri condividere la soluzione, in modo che qualcuno possa essere beneficiato o può suggerire una soluzione migliore.

    (1) La prima è quella di esportre "Full Access" di una casella di posta elettronica condivisa "ap.cz"

      $users=Get-Mailbox ap.cz | Get-MailboxPermission | where {$_.user.tostring() -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=[string]$item $b = $itemcast.Split("\")[1] $c=$b.Split("}")[0] Get-ADUser -identity $c -properties DisplayName | select DisplayName } catch { $error="error" } } 

    (2) Secondo è quello di esportre "Invia come" di una casella di posta condivisa denominata "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=[string]$item $b = $itemcast.Split("\")[1] $c=$b.Split("}")[0] Get-ADUser -identity $c -properties DisplayName | select DisplayName } catch { $error="error" } } 

    entrambi gli script sono stati salvati come script1.ps1 e script2.ps1 e l'output è stato salvato in out-file c: \ araa.csv

    Come esportre in csv

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

    Powershell un altro modo,

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

    Salvare l'output su un var, quindi aggiungere il nome del file che vogliamo guardare alla fine del var, pensare al $ gadu var come tabella, non come fantasia come la formattazione come sopra, ma è comunque utile. Il destinatario può essere divertente in merito a quali campi uscirà, quindi faccio uso del -properties * 99% del tempo.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.