我用谷歌搜索并创建了两个脚本。(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
?我试过谷歌,但没有运气..
$users.user.rawidentity将消除类型转换和几行...
“完全访问”列表
“发送为”列表
最后,我得到了我的编程朋友的帮助(谁对 AD 对象一无所知),最终得到了以下解决方案。这可能不是理想的解决方案,但两者都在工作,节省了目的!希望分享解决方案,以便有人可以从中受益,或者可以提出更好的解决方案..
(1)第一个是导出一个名为“ap.cz”的共享邮箱的“完全访问权限”
(2)第二种是导出一个名为“ap.cz”的共享邮箱的“Send As”
两个脚本都保存为 script1.ps1 和 script2.ps1,输出保存到输出文件 c:\araa.csv
如何导出到 csv
Powershell的另一种方式,
将输出保存到 var 中,然后在 var 的末尾添加我们要查看的文件的名称,将 $gadu var 视为表格,不像上面的格式那么花哨,但仍然很方便。get-aduser 对它输出的字段可能很有趣,所以我
-properties *
99% 的时间都在使用它。