Untitled

 avatar
unknown
plain_text
2 months ago
1.8 kB
3
Indexable
# Install the required module (if not already installed)
Install-Module -Name ExchangeOnlineManagement -Force -AllowClobber

# Import the required module
Import-Module ExchangeOnlineManagement

# Connect to Exchange Online
$UserCredential = Get-Credential
Connect-ExchangeOnline -Credential $UserCredential

# Specify the path to the text file containing UPNs
$TextFilePath = "C:\Path\To\Your\Text\File.txt"

# Specify the name of the distribution list
$DistributionListName = "YourDistributionList"

# Specify the path to the output text file
$OutputFilePath = "C:\Path\To\Output\File.txt"

# Read UPNs from the text file
$UserUPNs = Get-Content -Path $TextFilePath

# Initialize a list to collect UPNs of users who were added to the distribution list
$AddedUsers = @()

# Add users to the distribution list
foreach ($UserUPN in $UserUPNs) {
    # Check if the user is already a member of the distribution list
    $IsMember = Get-DistributionGroupMember -Identity $DistributionListName | Where-Object { $_.PrimarySmtpAddress -eq $UserUPN }

    if (-not $IsMember) {
        # Add the user to the distribution list
        Add-DistributionGroupMember -Identity $DistributionListName -Member $UserUPN
        Write-Host "User $($UserUPN) added to $($DistributionListName) successfully."

        # Add the UPN to the list of added users
        $AddedUsers += $UserUPN
    } else {
        Write-Host "User $($UserUPN) is already a member of $($DistributionListName)."
    }
}

# Write the list of added users to the output text file
$AddedUsers | Out-File -FilePath $OutputFilePath

Write-Host "The UPNs of the added users have been exported to $OutputFilePath."

# Disconnect from Exchange Online when done
Disconnect-ExchangeOnline -Confirm:$false
Editor is loading...
Leave a Comment