我对此进行了广泛的研究,并使用了大量的反复试验法,但我尚未获得能够执行所需功能的脚本。我要创建一个脚本,该脚本将允许用户键入用户名,然后在所有邮箱中运行并显示用户在这些用户日历上的权限。我已经与以下脚本非常接近了,但是它只对整个邮箱有效,并且如果我只是在$ Box变量中添加“:\ Calendar”则不起作用。欢迎提供任何有关如何显示日历权限的输入。
$Username = Read-Host "Enter the user whose access you would like to view"
foreach ($Box in Get-Mailbox) {
Get-MailboxFolderPermission -Identity $Box -User $Username
}
我知道这是上一个问题的重复,但是由于我对代码进行了重大更改,因此我认为值得再次询问。这是我之前的问题的链接: Exchange Powershell: Get-MailboxFolderPermission for all calendars
感谢您的帮助!
答案 0 :(得分:0)
您可以参考以下代码:
(Get-Mailbox) | ForEach-Object {
Get-Mailboxfolderpermission (($_.PrimarySmtpAddress)+":\calendar") `
-User happyboy -ErrorAction SilentlyContinue
} | Select-Object Identity, User, Accessrights
有关更多信息,请参考此链接:
答案 1 :(得分:0)
使用@ Alina-Li的建议,我可以得出以下代码。现在一切正常:
(Get-Mailbox) | ForEach-Object {
$Permission = Get-Mailboxfolderpermission ($_.PrimarySMTPAddress.Local + "@" + $_.PrimarySMTPAddress.Domain +":\calendar") `
-User $User -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Accessrights
if ($Permission -ne $null) {
echo ("Calendar: "+($_.Name))
echo ($User+"'s Permission: "+$Permission)
echo ""
}
}