.history/Create-ITDistributionGroup_20251107152246.ps1

# Create IT Distribution Group Script
# Creates InformationTechnology@possabilitygroup.com.au distribution group
# Adds members and enables external sending

# Connect to Exchange Online (if not already connected)
# Uncomment the following lines if you need to connect first:
# Install-Module -Name ExchangeOnlineManagement -Force -Scope CurrentUser
# Connect-ExchangeOnline

# Distribution Group Details
$groupName = "InformationTechnology"
$groupEmail = "InformationTechnology@possabilitygroup.com.au"
$groupDisplayName = "Information Technology"

# Member email addresses
$members = @(
    "Steven.Offen@possabilitygroup.com.au",
    "Charlie.Tran@possabilitygroup.com.au",
    "Raghu.Vannala@possabilitygroup.com.au",
    "Mark.Wilson@possabilitygroup.com.au",
    "Matthew.Bubb@possabilitygroup.com.au",
    "Shane.Johns@possabilitygroup.com.au",
    "Steven.Mouzakis@possabilitygroup.com.au",
    "Abdul.Majeed@possabilitygroup.com.au",
    "Vhybhavi.Guska@possabilitygroup.com.au",
    "phone.tun@possabilitygroup.com.au",
    "Apoorv.Singh@possabilitygroup.com.au",
    "Natalie.Vipiana@possabilitygroup.com.au",
    "Louise.Cronk@lifestylesolutions.org.au",
    "Sarah.Graham@possabilitygroup.com.au",
    "Nathan.Horton@possabilitygroup.com.au",
    "Travis.Hunt@possabilitygroup.com.au",
    "Stuart.Richardson@possabilitygroup.com.au",
    "Ahmed.Faris@possabilitygroup.com.au",
    "Nico.Georgaki@possabilitygroup.com.au",
    "Abby.Lynch@possabilitygroup.com.au",
    "Iby.Boztepe@possabilitygroup.com.au",
    "Terence.Zhao@possabilitygroup.com.au"
)

try {
    Write-Host "Creating distribution group: $groupEmail" -ForegroundColor Cyan
    
    # Create the distribution group
    New-DistributionGroup -Name $groupName `
                          -DisplayName $groupDisplayName `
                          -PrimarySmtpAddress $groupEmail `
                          -Type "Distribution" `
                          -ErrorAction Stop
    
    Write-Host "✓ Distribution group created successfully" -ForegroundColor Green
    
    # Wait a moment for the group to be fully created
    Start-Sleep -Seconds 3
    
    # Add members to the group
    Write-Host "`nAdding members to the group..." -ForegroundColor Cyan
    $successCount = 0
    $failCount = 0
    
    foreach ($member in $members) {
        try {
            Add-DistributionGroupMember -Identity $groupEmail -Member $member -ErrorAction Stop
            Write-Host " ✓ Added: $member" -ForegroundColor Green
            $successCount++
        }
        catch {
            Write-Host " ✗ Failed to add: $member - $($_.Exception.Message)" -ForegroundColor Red
            $failCount++
        }
    }
    
    Write-Host "`nMember Addition Summary:" -ForegroundColor Cyan
    Write-Host " Success: $successCount" -ForegroundColor Green
    Write-Host " Failed: $failCount" -ForegroundColor $(if ($failCount -gt 0) { "Red" } else { "Green" })
    
    # Enable external sending (allow external senders to email this group)
    Write-Host "`nConfiguring external sending permissions..." -ForegroundColor Cyan
    
    Set-DistributionGroup -Identity $groupEmail `
                          -RequireSenderAuthenticationEnabled $false `
                          -ErrorAction Stop
    
    Write-Host "✓ External sending enabled - external users can now send to this group" -ForegroundColor Green
    
    # Display group information
    Write-Host "`n========================================" -ForegroundColor Cyan
    Write-Host "Distribution Group Created Successfully!" -ForegroundColor Green
    Write-Host "========================================" -ForegroundColor Cyan
    Write-Host "Group Name: $groupDisplayName"
    Write-Host "Email Address: $groupEmail"
    Write-Host "Total Members: $($members.Count)"
    Write-Host "External Sending: Enabled"
    Write-Host "`nYou can view the group with: Get-DistributionGroup -Identity '$groupEmail'"
    Write-Host "You can view members with: Get-DistributionGroupMember -Identity '$groupEmail'"
}
catch {
    Write-Host "`n✗ Error occurred: $($_.Exception.Message)" -ForegroundColor Red
    Write-Host "`nTroubleshooting tips:" -ForegroundColor Yellow
    Write-Host "1. Ensure you're connected to Exchange Online: Connect-ExchangeOnline"
    Write-Host "2. Verify you have permissions to create distribution groups"
    Write-Host "3. Check if the group already exists: Get-DistributionGroup -Identity '$groupEmail'"
}