Files
WPanda/Scripts/powershell/Oof_Enabled.ps1
2025-12-15 10:00:38 +01:00

42 lines
1.6 KiB
PowerShell

# Connect to Exchange Online (requires ExchangeOnlineManagement module)
# Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber
# Connect-ExchangeOnline -ShowProgress $true
# --- Script ---
# Get all user mailboxes
Write-Host "Retrieving all user mailboxes..."
$mailboxes = Get-Mailbox -ResultSize Unlimited -Filter {RecipientTypeDetails -eq 'UserMailbox'}
# Create a container for the OOF enabled users
$oofEnabledUsers = @()
Write-Host "Checking Out of Office status for each mailbox..."
foreach ($mailbox in $mailboxes) {
try {
$oofSettings = Get-MailboxAutoReplyConfiguration -Identity $mailbox.UserPrincipalName
if ($oofSettings.AutoReplyState -ne "Disabled") {
$oofEnabledUsers += [PSCustomObject]@{
UserPrincipalName = $mailbox.UserPrincipalName
AutoReplyState = $oofSettings.AutoReplyState
StartTime = $oofSettings.StartTime
EndTime = $oofSettings.EndTime
InternalMessage = $oofSettings.InternalMessage
ExternalMessage = $oofSettings.ExternalMessage
}
Write-Host " OOO enabled for $($mailbox.UserPrincipalName)"
}
}
catch {
Write-Warning "Could not retrieve OOF settings for $($mailbox.UserPrincipalName). Error: $($_.Exception.Message)"
}
}
# Display the OOF configurations for all users where it's enabled
Write-Host "`n--- Summary of Users with Enabled Out of Office ---"
if ($oofEnabledUsers.Count -gt 0) {
$oofEnabledUsers | Format-Table
} else {
Write-Host "No users found with Out of Office enabled."
}