【发布时间】:2018-12-01 09:22:57
【问题描述】:
我一直在编写一个脚本来一次显示某个用户的所有邮箱的权限。不幸的是,由于 Get-MailboxFolderPermission 命令中的 -Identity 属性不接受通配符,这变得有点复杂和混乱。
我已经开始使用一个数组来存储所有邮箱,所以我可以遍历它并在每个邮箱上运行命令,但我无法完成这项工作,因为我无法减少任何我的输出到电子邮件地址。这是我最近的迭代:
$Mailboxes = Get-Mailbox | Select Name -ExpandProperty EmailAddresses | Select AddressString
$MailboxList = @()
Foreach ($Box in $Mailboxes) {
$BoxName = Out-String -InputObject $Box
echo $BoxName | Out-File "box.txt"
$BoxName = Select-String "box.txt" -Pattern "\b[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b"
echo $BoxName
$MailboxList += $BoxName
}
此代码的问题在于 $BoxName 变量返回时附加了“box.txt:4:”文本。尝试使用 -Replace 删除该文本会导致添加完整的文件路径。
我对 Powershell 还很陌生,所以即使这只是完全错误的方法,我也会很感激一些关于如何做我在这里尝试做的事情的指示。
谢谢
【问题讨论】:
-
我意识到我在写这篇文章时错过了一些非常重要的信息。我对这个脚本的最终目标是它将显示每个用户的邮箱访问权限。我目前的方法/逻辑是:1.获取邮箱列表2.遍历邮箱列表,获取每个邮箱的特定用户的访问权限:列表中的\日历
标签: powershell exchange-server