Forum Discussion
RE: help with powershell script please
SteveMSPI think this is what you're looking for. I don't have an Exchange server to test with.
Get-Mailbox -ResultSize Unlimited | ForEach-Object {
Get-MailboxFolderPermission (($_.PrimarySmtpAddress.ToString())+':\Calendar') -User -ErrorAction SilentlyContinue
} | select-object -property Identity,User,@{Label='AccessRights'; expression={$_.accessrights -join ';'}} |
Export-CSV -Path 'C:\Temp\user.csv' -NoTypeInformation
Here is a script written by ChatGPT:
# Get a list of all mailboxes
$mailboxes = Get-Mailbox -ResultSize Unlimited
# Create an array to store the results
$results = @()
# Loop through each mailbox
foreach ($mailbox in $mailboxes) {
# Get calendar permissions for the mailbox
$calendarPermissions = Get-MailboxFolderPermission -Identity $mailbox.UserPrincipalName":\Calendar" | Where-Object { $_.User -ne "Default" -and $_.User -ne "Anonymous" }
# Loop through each calendar permission
foreach ($permission in $calendarPermissions) {
# Add mailbox name, user, and permission to results array
$result = [PSCustomObject]@{
Mailbox = $mailbox.DisplayName
User = $permission.User
Permission = $permission.AccessRights
}
$results += $result
}
}
# Export results to CSV
$results | Export-Csv -Path "CalendarPermissions.csv" -NoTypeInformation