$results = foreach ($Mailbox in (Get-Mailbox -ResultSize Unlimited))
{
get-MailboxFolderPermission -identity "$($Mailbox.Name):Calendar" -ErrorAction SilentlyContinue |
Where-Object {$_.User -notlike "Default" -and
$_.User -notlike "Anonymous" -and
$_.AccessRights -notlike "None" -and
$_.AccessRights } |
Select @{N="Mailbox";E={$Mailbox.SamAccountName}}, FolderName, User, AccessRights
}
$results
我仍在学习Powershell(只有1整年的经验(。 我使用此代码报告环境中所有最终用户邮箱的日历权限。 该代码运行良好,但它仅报告日历对象。 我需要运行三个单独的报表才能获得"日历"、"联系人"和"收件箱"权限。
我尝试创建一个数组,但它在一行上抛出多个值。(某些最终用户有多个人有权访问其日历/联系人/收件箱。 有没有人知道如何组合这些结果?
谢谢
以下是我想要的结果的示例:
仅使用附加邮箱迭代一次
ForEach ($Folder in 'Contents','Calendar','Inbox')
应该更有效率:
#Date
$date = (Get-Date -f yyyy-MM-dd)
#Pull Permissions
$Permissions = ForEach ($Mailbox in (Get-Mailbox -ResultSize Unlimited )) {
ForEach ($Folder in 'Contents','Calendar','Inbox'){
Get-MailboxFolderPermission -identity "$($Mailbox.Name):$($Folder)" -ErrorAction SilentlyContinue |
Where-Object {$_.User -notlike "Default" -and $_.User -notlike "Anonymous" -and $_.AccessRights -notlike "None" -and $_.AccessRights } |
Select @{N="Mailbox";E={$Mailbox.SamAccountName}},
@{N="Folder";E={$_.FolderName}},
@{N="User With Access";E={$_.User}},
@{N="Access";E={$_.AccessRights}}
}
}
#Export to Desktop
$Permissions | Sort User | Export-Csv "$env:USERPROFILEDesktopExchangePermissions-$Date.csv" -NoTypeInformation
#Date
$date = (Get-Date -f yyyy-MM-dd)
#Pull Permissions
$Permissions = ForEach ($Mailbox in (Get-Mailbox -ResultSize Unlimited )) {
$userInfo = get-user $Mailbox.name | select Title
ForEach ($Folder in 'Contacts','Calendar','Inbox'){
Get-MailboxFolderPermission -identity "$($Mailbox.Name):$($Folder)" -ErrorAction SilentlyContinue |
Where-Object {$_.User -notlike "Default" -and $_.User -notlike "Anonymous" -and $_.AccessRights -notlike "None" -and $_.AccessRights } |
Select @{N="Mailbox";E={$Mailbox.SamAccountName}},
@{N="Office";E={$Mailbox.Office}},
@{N="Title";E={$userInfo.Title}},
@{N="Folder";E={$_.FolderName}},
@{N="User With Access";E={$_.User}},
@{N="Access";E={$_.AccessRights}}
}
}
#Export to Desktop
$Permissions | Sort User | Export-Csv
"$env:USERPROFILEDesktopExchangePermissions-$Date.csv" -NoTypeInformation