ค้นหาเว็บไซต์

วิธีเพิ่มสมาชิกในกลุ่มการจัดจำหน่ายด้วย PowerShell


คุณสามารถเพิ่มผู้ใช้หลายรายลงในรายชื่อการแจกจ่ายที่มีอยู่หรือกลุ่มความปลอดภัยที่เปิดใช้งานจดหมายในพอร์ทัลผู้ดูแลระบบของ Microsoft แต่ด้วย PowerShell มันเร็วกว่ามากและคุณใช้ไฟล์ CSV เพื่อเพิ่มสมาชิกลงในกลุ่มรายชื่อการแจกจ่ายหลายกลุ่ม ในบทความนี้ คุณจะได้เรียนรู้วิธีเพิ่มสมาชิกในกลุ่มการแจกจ่ายด้วย PowerShell

เชื่อมต่อกับ Exchange Online PowerShell

เพื่อให้สามารถเรียกใช้คำสั่ง PowerShell คุณต้องเชื่อมต่อกับ Exchange Online PowerShell เปิด Windows PowerShell ในฐานะผู้ดูแลระบบ เรียกใช้ cmdlet ด้านล่าง และลงชื่อเข้าใช้ด้วยข้อมูลประจำตัวผู้ดูแลระบบของคุณ

Connect-ExchangeOnline

ข้อผิดพลาด Add-DistributionGroupMember: คุณมีสิทธิ์ไม่เพียงพอ

กลุ่มการแจกจ่ายแต่ละกลุ่มมีผู้จัดการ (เจ้าของ) อย่างน้อยหนึ่งคน หมายความว่าเฉพาะ ผู้จัดการ กลุ่มการแจกจ่ายเท่านั้นที่ได้รับอนุญาตให้ดำเนินงานการจัดการเหล่านี้ ดังนั้นเมื่อผู้ดูแลระบบ Exchange Online พยายามปรับปรุงคุณสมบัติของกลุ่มการแจกจ่ายด้วย cmdlet Add-DistributionGroupMember และไม่ใช่ผู้จัดการของกลุ่มการแจกจ่ายนี้ ข้อความแสดงข้อผิดพลาดต่อไปนี้จะปรากฏขึ้น

ข้อผิดพลาด: คุณมีสิทธิ์ไม่เพียงพอ การดำเนินการนี้สามารถทำได้โดยผู้จัดการของกลุ่มเท่านั้น

โปรดสังเกตว่าแม้แต่ผู้ใช้ที่มีข้อมูลรับรองผู้ดูแลระบบส่วนกลางก็ไม่สามารถเพิ่มสมาชิกหรือทำการเปลี่ยนแปลงกลุ่มการแจกจ่ายได้ ข้อเท็จจริงที่ว่าคุณไม่ใช่ ผู้จัดการ กลุ่มการแจกจ่ายอาจทำให้คุณไม่สามารถทำงานการจัดการที่จำเป็นให้เสร็จสิ้นได้

PowerShell cmdlet ที่คุณต้องใช้สำหรับจัดการกลุ่มการแจกจ่ายจะมีพารามิเตอร์ชื่อ -BypassSecurityGroupManagerCheck ดังนั้นเมื่อใดก็ตามที่คุณพยายามดำเนินงานด้านการจัดการ และ ข้อผิดพลาดในการอนุญาต ปรากฏขึ้น คุณสามารถเพิ่มพารามิเตอร์ -BypassSecurityGroupManagerCheck ให้กับคำสั่ง PowerShell ดั้งเดิมได้

ดูตัวอย่างไวยากรณ์คำสั่ง PowerShell

Add-DistributionGroupMember "Distribution Group" -Member "Identity" -BypassSecurityGroupManagerCheck

เรียกใช้ตัวอย่างคำสั่ง PowerShell

Add-DistributionGroupMember "SalesUK@m365info.com" -Member "Amanda.Morgan@m365info.com" -BypassSecurityGroupManagerCheck

ในตัวอย่างของเรา ใครๆ ก็สามารถเพิ่มสมาชิกในกลุ่มการแจกจ่าย (Sales UK) ได้

การเพิ่มผู้ใช้ในกลุ่มการแจกจ่าย

คุณสามารถเพิ่มผู้ใช้เป็นสมาชิกใหม่ในกลุ่มการแจกจ่ายที่มีอยู่ได้ตลอดเวลา เราจะแสดงให้คุณเห็นสถานการณ์ต่างๆ:

  1. เพิ่มสมาชิกคนเดียวในกลุ่มการแจกจ่ายที่มีอยู่
  2. เพิ่มผู้ใช้จำนวนมากไปยังกลุ่มการแจกจ่ายที่มีอยู่กลุ่มเดียว
  3. เพิ่มผู้ใช้หลายรายในกลุ่มการแจกจ่ายที่มีอยู่กลุ่มเดียว
  4. เพิ่มผู้ใช้จำนวนมากในกลุ่มการแจกจ่ายที่มีอยู่ทั้งหมด

สำหรับสิ่งนี้ เราจำเป็นต้องใช้ Add-DistributionGroupMember PowerShell cmdlet

เพิ่มสมาชิกในกลุ่มการจัดจำหน่าย

คุณสามารถเพิ่มสมาชิกเฉพาะลงในกลุ่มการแจกจ่ายที่มีอยู่ได้ตลอดเวลา

ดูไวยากรณ์คำสั่ง PowerShell

Add-DistributionGroupMember "Distribution Group" -Member "Identity" -BypassSecurityGroupManagerCheck

เรียกใช้ตัวอย่างคำสั่ง PowerShell ด้านล่าง

Add-DistributionGroupMember -Identity "SalesUK@m365info.com" -Member "Amanda.Hansen@m365info.com" -BypassSecurityGroupManagerCheck

เพิ่มผู้ใช้จาก CSV ไปยังกลุ่มการแจกจ่ายเฉพาะ

เราต้องการเพิ่มสมาชิกหลายรายในกลุ่มการแจกจ่ายที่มีอยู่โดยการนำเข้ารายชื่อผู้ใช้ทั้งหมดจากไฟล์ CSV ด้วย PowerShell

  1. เรียกใช้คำสั่ง PowerShell เพื่อส่งออกรายการกล่องจดหมายของผู้ใช้ที่ใช้งานอยู่ในองค์กรของคุณ
Get-Mailbox -ResultSize Unlimited | Select DisplayName, Alias, PrimarySmtpAddress | Export-Csv "C:\temp\Distribution Group Members.csv" -NoTypeInformation -Encoding UTF8
  1. ไปที่โฟลเดอร์ C:\temp
  2. เปิดไฟล์ CSV เพื่อดูรายการกล่องจดหมายของผู้ใช้ทั้งหมด

  1. ผู้ใช้แต่ละคนมี ข้อมูลประจำตัว หลายรายการ เช่น ชื่อที่แสดง, ชื่อแทน และ ที่อยู่ SMTP หลัก
  2. คุณสามารถ แก้ไข รายชื่อและลบผู้ใช้ที่คุณไม่ต้องการเพิ่มเป็นสมาชิกของกลุ่มการแจกจ่ายได้ (ไม่บังคับ)

ในตัวอย่างของเรา เราต้องการเพิ่มรายชื่อผู้ใช้นี้ไปยังกลุ่มการแจกจ่ายเฉพาะชื่อ Sales France

  1. พิมพ์ ข้อมูลประจำตัวของกลุ่มการแจกจ่ายเฉพาะใน บรรทัดหมายเลข 3 ในสคริปต์ด้านล่าง
  2. เรียกใช้สคริปต์ PowerShell ด้านล่าง
$Userslist = Import-Csv "C:\temp\Distribution Group Members.csv"
ForEach ($User in $Userslist) {
    Add-DistributionGroupMember -Identity "SalesFrance@m365info.com" -Member $User.PrimarySmtpAddress -BypassSecurityGroupManagerCheck
}

หมายเหตุ: คุณจะได้รับข้อความในเอาต์พุตหากผู้ใช้เป็นสมาชิกของกลุ่มอยู่แล้วหรือหากไม่มีผู้ใช้อยู่

Add-DistributionGroupMember: Ex93E602|Microsoft.Exchange.Management.Tasks.MemberAlreadyExistsException|The recipient
"David.Kent@m365info.com" is already a member of the group "Sales France".
Add-DistributionGroupMember: Ex94914C|Microsoft.Exchange.Configuration.Tasks.ManagementObjectNotFoundException|Couldn't
find object "Mary.James@m365info.com". Please make sure that it was spelled correctly or specify a different object.

เพิ่มผู้ใช้ทั้งหมดจากแผนกเฉพาะไปยังกลุ่มการจัดจำหน่าย

คุณสามารถเพิ่มผู้ใช้ทั้งหมดจากแผนกเฉพาะในองค์กรของคุณ เช่น ฝ่ายขาย ไปยังกลุ่มการแจกจ่ายที่มีอยู่ได้

ในองค์กรของเรา เรามีแผนกขายหลายแห่ง เช่น Sales UK, Sales USA และ Sales France

เราต้องการรับผู้ใช้ทั้งหมดจากแผนกการขายทั้งหมด และเพิ่มพวกเขาเป็นสมาชิกในกลุ่มรายชื่อการแจกจ่าย AllSalesDepartments

  • เราจำเป็นต้องค้นหาผู้ใช้ทั้งหมดจากแผนกการขายโดยใช้สตริง PowerShell การขาย*
  • เราใช้ตัวแปร $SalesUsers เพื่อจัดเก็บข้อมูลนี้เกี่ยวกับรายชื่อผู้ใช้
  • จากนั้น เรารันกระบวนการวนซ้ำของ PowerShell ซึ่งจะใช้ข้อมูลที่จัดเก็บไว้ในตัวแปร $SalesUsers และเพิ่มสมาชิกแต่ละคนที่จัดเก็บไว้ในตัวแปร $SalesUsers ไปยังกลุ่มการแจกจ่าย แผนกขายทั้งหมด

เรียกใช้สคริปต์ PowerShell ด้านล่าง

$SalesUsers = Get-User | Where { $_.Department -like "Sales*" }
foreach ($User in $SalesUsers) {
    Add-DistributionGroupMember -Identity "AllSalesDepartments@m365info.com" -Member $User.Name -BypassSecurityGroupManagerCheck
}

คุณสามารถเพิ่มสมาชิกในกลุ่มการแจกจ่ายที่มีอยู่ด้วย PowerShell

เพิ่มสมาชิกเป็นกลุ่มการแจกจ่ายหลายกลุ่มจาก CSV

คุณสามารถเพิ่มผู้ใช้ที่มีอยู่เป็นสมาชิกลงในรายชื่อการแจกจ่ายและกลุ่มความปลอดภัยที่เปิดใช้งานเมลได้จากไฟล์ CSV คุณต้องสร้าง CSV ที่ประกอบด้วยสองคอลัมน์ คอลัมน์ที่มีรายชื่อกลุ่มการแจกจ่ายและคอลัมน์ที่มีผู้ใช้ปัจจุบันที่คุณต้องการเพิ่มเป็นสมาชิก

สร้างไฟล์ CSV ที่มี 2 คอลัมน์:

  1. เปิด แผ่นจดบันทึก หรือ Microsoft Excel
  2. พิมพ์ GroupName ที่ด้านบนของคอลัมน์แรก
  3. แสดงรายการกลุ่มการแจกจ่าย ที่อยู่ SMTP หลัก ที่มีอยู่
  4. พิมพ์ สมาชิก ที่ด้านบนของคอลัมน์ที่สอง
  5. ระบุ UserPrincipalName ของสมาชิก

หมายเหตุ: ชื่อคอลัมน์ GroupName ต้องไม่มีการเว้นวรรค และต้องมีกลุ่มการแจกจ่ายอยู่

ดูตัวอย่างไฟล์ CSV ด้านล่าง

  1. สร้างโฟลเดอร์ temp หากคุณยังไม่มีอยู่ในไดรฟ์ (C:)
  2. ตั้งชื่อไฟล์ DL Group Members.csv
  3. บันทึกเป็นประเภท CSV (คั่นด้วยจุลภาค (*.csv)
  4. คลิกบันทึก
  5. เรียกใช้สคริปต์ PowerShell ด้านล่าง
# Specify the path to your CSV file
$csvPath = "C:\temp\DL Group Members.csv"

# Import the CSV file
$csvData = Import-Csv -Path $csvPath

# Loop through each row in the CSV file and update the distribution group
foreach ($row in $csvData) {
    $member = $row.Member
    $groupName = $row.GroupName

    # Check if the user specified in Member exists
    $userExists = @()
    $userExists += Get-User -Identity $member -ErrorAction SilentlyContinue
    $userExists += Get-Contact -Identity $member -ErrorAction SilentlyContinue

    # Check if the distribution group specified in GroupName exists
    $groupExists = Get-DistributionGroup -Identity $groupName -ErrorAction SilentlyContinue

    if ($userExists -and $groupExists) {
        # Both user and group exist, so proceed with updating the distribution group
        try {
            # Get the user's ID
            $userID = $userExists.Identity

            # Check if the user is already a member of the group
            $isMember = Get-DistributionGroupMember -Identity $groupName | Where-Object { $_.Identity -contains $userID }

            if (-not $isMember) {
                # User is not a member, so add them
                Add-DistributionGroupMember -Identity $groupName -Member $member -BypassSecurityGroupManagerCheck -ErrorAction Stop
                Write-Host "Added user $member as member to $groupName." -ForegroundColor Green
            }
            else {
                Write-Host "User $member is already a member of $groupName. No action needed." -ForegroundColor Cyan
            }
        }
        catch {
            Write-Host "Failed to update member for $groupName. Error: $($_.Exception.Message)" -ForegroundColor Red
        }
    }
    elseif (-not $groupExists) {
        # Group doesn't exist, display a message
        Write-Host "Distribution group $groupName specified in GroupName column doesn't exist. Skipping." -ForegroundColor Yellow
    }
    elseif (-not $userExists) {
        # User doesn't exist, display a message
        Write-Host "User $member specified in member column doesn't exist. Skipping." -ForegroundColor Yellow
    }
}

ผลลัพธ์เอาต์พุตของ PowerShell จะแสดง:

  • เมื่อคุณเพิ่มผู้ใช้เป็นสมาชิกของกลุ่มการแจกจ่าย
  • หากไม่มีกลุ่มการแจกจ่าย
  • หากผู้ใช้เป็นสมาชิกของกลุ่มการแจกจ่ายอยู่แล้ว
  • ผู้ใช้ไม่มีอยู่ใน Microsoft 365
Added user Adam.Mackay@m365info.com as member to SalesFrance@m365info.com.
User Amanda.Morgan@m365info.com is already a member of SalesFrance@m365info.com. No action needed.
Distribution group SalesUK@m365info.com specified in GroupName column doesn't exist. Skipping.
User Jill.Bates@m365info.com specified in member column doesn't exist. Skipping.
Added user George.Wilson@m365info.com as member to SalesGermany@m365info.com.
Added user Brenda.Smith@m365info.com as member to SalesGermany@m365info.com.
User Unknown@m365info.com specified in member column doesn't exist. Skipping.

เพิ่มผู้ใช้ในกลุ่มการแจกจ่ายหลายกลุ่ม

เราจะแสดงวิธีเพิ่มผู้ใช้เฉพาะในกลุ่มการแจกจ่ายหลายกลุ่มด้วยวิธีต่างๆ

เพิ่มผู้ใช้ในกลุ่มการแจกจ่ายหลายกลุ่ม

คุณสามารถเพิ่มผู้ใช้รายเดียวเป็นสมาชิกลงในรายชื่อการแจกจ่ายและกลุ่มความปลอดภัยที่เปิดใช้งานจดหมายได้หลายรายการ ใช้สคริปต์ด้านล่างและพิมพ์ สมาชิก ที่คุณต้องการกำหนดให้กับกลุ่มการแจกจ่ายต่างๆ

สคริปต์ประกอบด้วยสองส่วน:

  • ระบุ กลุ่มการแจกจ่าย ที่อยู่ SMTP หลักใน หมายเลขบรรทัด 1
  • ระบุ UserPrincipalName ของสมาชิกที่คุณต้องการเพิ่มใน หมายเลขบรรทัด 3

ในตัวอย่างของเรา เราต้องการให้ผู้ใช้ Brenda.Smith@m365info.com เป็นสมาชิกของกลุ่มการจัดจำหน่าย 2 กลุ่ม (Sales UK & Sales USA ).

เรียกใช้ตัวอย่าง PowerShell ด้านล่าง

$DistributionGroupsList = "SalesUK@m365info.com", "SalesUSA@m365info.com"
ForEach ($DistributionGroup in $DistributionGroupsList) {
    Add-DistributionGroupMember -Identity $DistributionGroup -Member "Brenda.Smith@m365info.com" -BypassSecurityGroupManagerCheck
}

หมายเหตุ: คุณจะได้รับข้อความในเอาต์พุตหากผู้ใช้เป็นสมาชิกของกลุ่มอยู่แล้วหรือหากไม่มีผู้ใช้อยู่

เพิ่มผู้ใช้เพื่อรวมกลุ่มการแจกจ่ายทั้งหมด

ในสถานการณ์สมมตินี้ เราต้องการเพิ่มผู้ใช้เฉพาะลงในรายชื่อการแจกจ่ายที่มีอยู่และกลุ่มความปลอดภัยที่เปิดใช้งานจดหมายทั้งหมด

  • เราจะใช้ตัวแปรชื่อ $AllDistributionGroups ซึ่งจะรับรายชื่อการแจกจ่ายและกลุ่มความปลอดภัยที่เปิดใช้งานอีเมลในทั้งองค์กร
  • จากนั้น เราใช้คำสั่ง PowerShell ForEach เพื่อดำเนินการกระบวนการวนซ้ำในรายการกลุ่มการแจกจ่ายที่มีอยู่
  • ระบุ UserPrincipalName ของสมาชิกที่คุณต้องการเพิ่มใน หมายเลขบรรทัด 3 ในสคริปต์ด้านล่าง

เรียกใช้ตัวอย่างสคริปต์ PowerShell ด้านล่าง

$AllDistributionGroups = Get-Distributiongroup -ResultSize Unlimited
ForEach ($DistributionGroup in $AllDistributionGroups) {
    Add-DistributionGroupMember -Identity $DistributionGroup -Member "David.Kent@m365info.com" -BypassSecurityGroupManagerCheck
}

หมายเหตุ: คุณจะได้รับข้อความในเอาต์พุตหากผู้ใช้เป็นสมาชิกของกลุ่มอยู่แล้วหรือหากไม่มีผู้ใช้อยู่

เพิ่มผู้ใช้ในกลุ่มการแจกจ่ายหลายกลุ่มจากไฟล์ CSV

อีกวิธีหนึ่งในการเพิ่มผู้ใช้เฉพาะไปยังรายชื่อการแจกจ่ายหลายรายการและกลุ่มความปลอดภัยที่เปิดใช้งานเมลจากไฟล์ CSV คุณต้องสร้าง CSV ที่มีรายชื่อกลุ่มการแจกจ่ายที่คุณต้องการเพิ่มผู้ใช้รายนี้เป็นสมาชิก

สร้างไฟล์ CSV ที่มี 2 คอลัมน์:

  1. เปิด แผ่นจดบันทึก หรือ Microsoft Excel
  2. พิมพ์ GroupName ที่ด้านบนของคอลัมน์แรก
  3. แสดงรายการที่อยู่ SMTP หลักของกลุ่มการแจกจ่ายที่มีอยู่
  4. ป้อน ประเภท ที่ด้านบนของคอลัมน์ที่สอง
  5. พิมพ์ การกระจาย หรือ ความปลอดภัย

หมายเหตุ: คอลัมน์ GroupName ต้องไม่มีการเว้นวรรค และต้องมีกลุ่มการแจกจ่ายอยู่

  1. สร้างโฟลเดอร์ temp หากคุณยังไม่มีอยู่ในไดรฟ์ (C:)
  2. ตั้งชื่อไฟล์ DL Group Type.csv
  3. บันทึกเป็นประเภท CSV (คั่นด้วยจุลภาค (*.csv)
  4. คลิกบันทึก

  1. ตรวจสอบไฟล์ CSV ด้วย Import-Csv cmdlet

เพื่อให้แน่ใจว่า PowerShell สามารถอ่านไฟล์ได้ ให้เรียกใช้ Import-Csv cmdlet

Import-Csv "C:\temp\DL Group Type.csv"
  1. ระบุ UserPrincipalName ของสมาชิกใน หมายเลขบรรทัด 3
  2. เรียกใช้สคริปต์ PowerShell ด้านล่าง
$DistributionGroupsList = Import-Csv "C:\temp\DL Group Type.csv"
ForEach ($DistributionGroup in $DistributionGroupsList) {
    Add-DistributionGroupMember -Identity $DistributionGroup.GroupName -Member "Amanda.Hansen@m365info.com" -BypassSecurityGroupManagerCheck
}

หมายเหตุ: คุณจะได้รับข้อความในเอาต์พุตหากผู้ใช้เป็นสมาชิกของกลุ่มอยู่แล้วหรือหากไม่มีผู้ใช้อยู่

เพิ่มผู้ใช้ในกลุ่มการแจกจ่ายที่สร้างขึ้นใน 48 ชั่วโมงที่ผ่านมา

คุณสามารถเพิ่มผู้ใช้เฉพาะในกลุ่มการแจกจ่ายที่สร้างขึ้นใหม่ทั้งหมดในช่วง 48 ชั่วโมงที่ผ่านมา

ในตัวอย่างของเรา เราจะเพิ่มผู้ใช้ Brenda.Smith@m365info.com ไปยังกลุ่มการแจกจ่ายที่สร้างขึ้นใน 48 ชั่วโมงที่ผ่านมา

เรียกใช้ตัวอย่าง PowerShell ด้านล่าง

$AllNewDistributionGroups = Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.WhenCreated -ge (Get-Date).AddHours(-48) }
ForEach ($DistributionGroup in $AllNewDistributionGroups) {
    Add-DistributionGroupMember -Identity $DistributionGroup.DistinguishedName -Member "Brenda.Smith@m365info.com" -BypassSecurityGroupManagerCheck
}

หมายเหตุ: คุณจะได้รับข้อความในเอาต์พุตหากผู้ใช้เป็นสมาชิกของกลุ่มอยู่แล้วหรือหากไม่มีผู้ใช้อยู่

เพิ่มผู้ใช้ในกลุ่มการแจกจ่ายหากไม่ได้เป็นสมาชิก

คุณต้องการตรวจสอบว่าผู้ใช้รายใดเป็นสมาชิกของกลุ่มการแจกจ่ายที่มีอยู่หรือไม่ ในตัวอย่างของเรา เราต้องการตรวจสอบว่า Brenda Smith เป็นสมาชิกของกลุ่มการจัดจำหน่าย Sales UK หรือไม่

  • ผู้ใช้ที่เราต้องการตรวจสอบคือ Brenda Smith
  • ชื่อกลุ่มการจัดจำหน่ายคือ Sales UK

หากผู้ใช้ที่ระบุ (Brenda Smith) ไม่ได้เป็นสมาชิกของกลุ่มการจัดจำหน่าย Sales UK เราต้องการเพิ่มผู้ใช้ดังกล่าวเป็นสมาชิกของกลุ่มการจัดจำหน่าย

เรียกใช้ตัวอย่าง PowerShell ด้านล่าง

$User = Get-User -Identity "Brenda.Smith@m365info.com"
$Group = Get-DistributionGroup -Identity "SalesUK@m365info.com"
if ($Group.PrimarySmtpAddress -notcontains $User.Name)
{ Add-DistributionGroupMember -Identity $Group.PrimarySmtpAddress -Member $User.Name -BypassSecurityGroupManagerCheck }

โดยจะเพิ่มผู้ใช้เป็นสมาชิกของกลุ่มการแจกจ่ายโดยอัตโนมัติ

อ่านเพิ่มเติม: เลิกบล็อกการลงชื่อเข้าใช้ของผู้ใช้ Microsoft 365 »

บทสรุป

คุณได้เรียนรู้วิธีการเพิ่มสมาชิกกลุ่มการแจกจ่ายด้วย PowerShell คุณสามารถเพิ่มผู้ใช้รายเดียวหรือหลายรายเป็นสมาชิกในกลุ่มการแจกจ่ายที่มีอยู่ได้ ด้วย Powershell มีหลายวิธีในการทำงานให้สำเร็จและช่วยประหยัดเวลา

คุณสนุกกับบทความนี้หรือไม่? คุณอาจต้องการรีเซ็ต MFA สำหรับผู้ใช้ Microsoft 365 อย่าลืมติดตามเราและแบ่งปันบทความนี้

บทความที่เกี่ยวข้อง