Examples/Usage-Examples.ps1
|
# ExoAliasManagement Usage Examples # These examples demonstrate the various ways to use the module # Import the module Import-Module ExoAliasManagement #region Find-ExoAlias Examples # Example 1: Search for aliases containing "test" Find-ExoAlias -AddressToBeSearched "test" -MailboxToBeSearched "john@contoso.com" # Example 2: Get all aliases for a mailbox Find-ExoAlias -AddressToBeSearched "" -MailboxToBeSearched "john@contoso.com" # Example 3: Using positional parameters Find-ExoAlias "old" "john@contoso.com" # Example 4: Find aliases matching a pattern and display them $aliases = Find-ExoAlias "temp" "john@contoso.com" $aliases | Format-Table #endregion #region Add-ExoAlias Examples # Example 1: Add a new alias with named parameters Add-ExoAlias -AddressToBeAdded "john.doe@contoso.com" -MailboxToAddAlias "john@contoso.com" # Example 2: Add multiple aliases $newAliases = @( "jdoe@contoso.com", "johndoe@contoso.com", "j.doe@contoso.com" ) foreach ($alias in $newAliases) { Add-ExoAlias $alias "john@contoso.com" } # Example 3: Using positional parameters Add-ExoAlias "newalias@contoso.com" "john@contoso.com" #endregion #region Remove-ExoAlias Examples # Example 1: Remove a single alias (will prompt for confirmation) Remove-ExoAlias -AddressToBeRemoved "oldalias@contoso.com" -MailboxToBeRemoved "john@contoso.com" # Example 2: Remove using positional parameters Remove-ExoAlias "temp@contoso.com" "john@contoso.com" # Example 3: Pipeline - Find and remove matching aliases Find-ExoAlias "test" "john@contoso.com" | Remove-ExoAlias # Example 4: Remove multiple aliases matching a pattern Find-ExoAlias "temp" "john@contoso.com" | Remove-ExoAlias #endregion #region Complete Workflow Examples # Workflow 1: Audit mailbox aliases Write-Host "`nAll aliases for john@contoso.com:" -ForegroundColor Cyan Find-ExoAlias "" "john@contoso.com" # Workflow 2: Clean up test aliases Write-Host "`nRemoving test aliases..." -ForegroundColor Yellow Find-ExoAlias "test" "john@contoso.com" | Remove-ExoAlias # Workflow 3: Add new aliases and verify $mailbox = "john@contoso.com" Add-ExoAlias "j.doe@contoso.com" $mailbox Write-Host "`nVerifying new alias was added:" -ForegroundColor Green Find-ExoAlias "j.doe" $mailbox # Workflow 4: Replace old domain aliases with new domain $mailbox = "john@contoso.com" $oldDomain = "olddomain.com" $newDomain = "newdomain.com" # Find aliases with old domain $oldAliases = Find-ExoAlias $oldDomain $mailbox # For each old alias, create equivalent new alias and remove old one foreach ($alias in $oldAliases) { $localPart = ($alias.Address -split '@')[0] $newAlias = "$localPart@$newDomain" Write-Host "Migrating $($alias.Address) to $newAlias" -ForegroundColor Cyan Add-ExoAlias $newAlias $mailbox Remove-ExoAlias $alias.Address $mailbox } #endregion #region Error Handling Examples # Example: Handle non-existent mailbox try { Find-ExoAlias "" "nonexistent@contoso.com" } catch { Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red } # Example: Handle invalid email format try { Add-ExoAlias "not-an-email" "john@contoso.com" } catch { Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red } #endregion |