Active-Directory
如何在導出“發送為”和“完整”權限時獲取 AD 使用者的“顯示名稱”而不是登錄名(域使用者 ID)?
我用Google搜尋並創建了兩個腳本。(1), (2)
(1)第一個是導出一個名為“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)第二種是導出一個名為“ap.cz”的共享郵箱的“Send As”
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
兩個腳本都執行良好。
(1) 的輸出與此類似
(2) 的輸出與此類似
但在這兩種情況下,我都得到
User logon name
格式 (domain\userid
) 中的 " “,其中 userid 是我組織中的一個數字。但是在導出到 csv 時我需要得到
display name/full name
而不是“ ”。User logon name
我不是交易所管理員或精通交易所/powershell,但我正在檢查/支持整體 IT 基礎架構,當經理要求提供姓名列表時,對於某個特定的“發送為”或“完全訪問”郵箱,我必須使用上述腳本將其導出並手動重新轉換
"user logon name"
。display name
有人可以建議如何將兩個腳本更改為顯示
"full name/display name"
而不是login name
?我試過Google,但沒有運氣..
$users.user.rawidentity將消除類型轉換和幾行…
**“完全訪問”**列表
$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 }
**“發送為”**列表
$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 }