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

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


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

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

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

Connect-ExchangeOnline

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

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

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

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

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

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

Set-DistributionGroup -Identity "Distribution Group" -ManagedBy "Identity" -BypassSecurityGroupManagerCheck

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

Set-DistributionGroup -Identity "SalesUK@m365info.com" -ManagedBy "admin@m365info.com" -BypassSecurityGroupManagerCheck

ในตัวอย่างของเรา ผู้ดูแลระบบ (admin@m365info.com) สามารถควบคุมและจัดการกลุ่มการจัดจำหน่าย (Sales UK)

กลุ่มการแจกจ่าย - พารามิเตอร์ ManagedBy

พารามิเตอร์ -ManagedBy ระบุเจ้าของกลุ่ม กลุ่มต้องมีเจ้าของอย่างน้อยหนึ่งคน หากคุณไม่ใช้พารามิเตอร์นี้เพื่อระบุเจ้าของเมื่อคุณสร้างกลุ่ม บัญชีผู้ใช้ที่สร้างกลุ่มจะเป็นเจ้าของตามค่าเริ่มต้น

เจ้าของกลุ่มการแจกจ่ายสามารถ:

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

กลุ่มทั้งหมดต้องมีเจ้าของอย่างน้อยหนึ่งคน และกลุ่มการแจกจ่ายสามารถมีเจ้าของได้หลายคน

ตั้งค่าเจ้าของกลุ่มการแจกจ่าย

มาดูวิธีเพิ่มเจ้าของกลุ่มการแจกจ่ายลงในรายชื่อการแจกจ่ายหรือกลุ่มความปลอดภัยที่เปิดใช้งานจดหมายด้วย PowerShell

เพิ่มเจ้าของเพิ่มเติมในกลุ่มการแจกจ่ายเดียว

คุณสามารถเพิ่มเจ้าของเพิ่มเติมลงในกลุ่มรายชื่อการแจกจ่ายของคุณด้วย PowerShell

ในตัวอย่างของเรา เจ้าของกลุ่มการจัดจำหน่าย (Sales USA) คือผู้ใช้ (David Kent) เราจะเพิ่มผู้ใช้ที่มีอยู่อีกสองคนเป็นเจ้าของในรายชื่อการแจกจ่าย

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

Set-DistributionGroup "Distribution Group" -ManagedBy @{Add='Identity 1','Identity 2'} -BypassSecurityGroupManagerCheck

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

Set-DistributionGroup "SalesUSA@m365info.com" -ManagedBy @{Add='Amanda.Hansen@m365info.com','Brenda.Smith@m365info.com'} -BypassSecurityGroupManagerCheck

เพิ่มเพิ่มเติมและลบเจ้าของที่มีอยู่ในกลุ่มการแจกจ่ายเดียว

สมมติว่าเรามีกลุ่มการจัดจำหน่ายที่มีเจ้าของสองสามราย เราต้องการดำเนินการตามข้อกำหนดต่อไปนี้:

  • เพิ่ม เจ้าของใหม่
  • ลบ เจ้าของกลุ่มการแจกจ่ายบางส่วนที่มีอยู่

หมายเหตุ: คุณไม่สามารถลบเจ้าของกลุ่มการแจกจ่ายทั้งหมดได้ ควรมีเจ้าของหนึ่งรายสำหรับแต่ละกลุ่มการแจกจ่ายเสมอ

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

Set-DistributionGroup "Distribution Group" -ManagedBy @{Add='Identity 1','Identity 2';Remove='Identity 1'} -BypassSecurityGroupManagerCheck

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

Set-DistributionGroup "SalesUSA@m365info.com" -ManagedBy @{Add='Stephen.Hunter@m365info.com','Jill.Bates@m365info.com';Remove='David.Kent@m365info.com'} -BypassSecurityGroupManagerCheck

ในตัวอย่างของเรา เราได้เพิ่มเจ้าของใหม่สองคน และลบเจ้าของกลุ่มการแจกจ่ายสำหรับ Sales USA

เพิ่มเจ้าของเพิ่มเติมให้กับกลุ่มการแจกจ่ายหลายกลุ่มจาก CSV

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

คุณต้องสร้างไฟล์ CSV ที่มีสองคอลัมน์

  • GroupName: ส่วนหัวคอลัมน์ที่เก็บข้อมูลเกี่ยวกับกลุ่มการแจกจ่าย
  • ManagedBy: ส่วนหัวคอลัมน์ที่เก็บข้อมูลเกี่ยวกับชื่อผู้ใช้ที่เราต้องการกำหนดให้เป็นเจ้าของกลุ่มการแจกจ่าย

ทำตามขั้นตอนด้านล่างเพื่อสร้างไฟล์ CSV เพื่อแทนที่เจ้าของที่มีอยู่:

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

ตั้งชื่อไฟล์ว่า เจ้าของกลุ่ม DL และบันทึกเป็นไฟล์ CSV ในโฟลเดอร์ temp หากคุณยังไม่มีไฟล์นั้นอยู่ใน (C:) ขับ

  1. เพื่อให้แน่ใจว่า PowerShell สามารถอ่านไฟล์ได้ ให้เรียกใช้ Import-Csv cmdlet
Import-Csv "C:\temp\DL Group Owner.csv"
  1. เรียกใช้สคริปต์ PowerShell ด้านล่าง
# Specify the path to your CSV file
$csvPath = "C:\temp\DL Group Owner.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) {
    $groupName = $row.GroupName
    $owner = $row.ManagedBy

    # Check if the user specified in Owner exists
    $userExists = @()
    $userExists += Get-User -Identity $owner -ErrorAction SilentlyContinue
    $userExists += Get-Contact -Identity $owner -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 an owner of the group
            $isOwner = Get-DistributionGroup -Identity $groupName | Where-Object { $_.ManagedBy -contains $userID }

            if (-not $isOwner) {
                # User is not an owner, so add them
                Set-DistributionGroup -Identity $groupName -ManagedBy @{Add = $userID } -BypassSecurityGroupManagerCheck -ErrorAction Stop
                Write-Host "Added user $owner to $groupName as owner." -ForegroundColor Green
            }
            else {
                Write-Host "User $owner is already an owner of $groupName. No action needed." -ForegroundColor Cyan
            }
        }
        catch {
            Write-Host "Failed to update owner 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 $owner specified in owner column doesn't exist. Skipping." -ForegroundColor Yellow
    }
}

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

  • เมื่อคุณเพิ่มผู้ใช้เป็นเจ้าของกลุ่มการแจกจ่าย
  • หากไม่มีกลุ่มการแจกจ่าย
  • หากผู้ใช้เป็นเจ้าของกลุ่มการแจกจ่ายอยู่แล้ว
  • ผู้ใช้ไม่มีอยู่ใน Microsoft 365
Added user Susan.Brown@m365info.com to SalesSpain@m365info.com as owner.
Added user Andrea.Baker@m365info.com to SalesSpain@m365info.com as owner.
User Brenda.Smith@m365info.com is already an owner of SalesGermany@m365info.com. No action needed.
User Unknown@m365info.com specified in owner column doesn't exist. Skipping.
User Amanda.Hansen@m365info.com is already an owner of SalesUK@m365info.com. No action needed.
User Jill.Bates@m365info.com specified in owner column doesn't exist. Skipping.
Added user Cindyw@gmail.com to SalesUK@m365info.com as owner.
User George.Wilson@m365info.com is already an owner of SalesUK@m365info.com. No action needed.

แทนที่เจ้าของกลุ่มการจัดจำหน่าย

เมื่อต้องการแทนที่เจ้าของกลุ่มการแจกจ่าย คุณต้องกำหนดเจ้าของใหม่เพียงคนเดียว ซึ่งจะลบเจ้าของกลุ่มการแจกจ่ายเก่าออกโดยอัตโนมัติ

แทนที่เจ้าของที่มีอยู่ในกลุ่มการแจกจ่ายเดียว

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

ในตัวอย่างของเรา เรามีเจ้าของกลุ่มการจัดจำหน่าย Sales USA หลายคน เราต้องการเปลี่ยนเจ้าของให้เป็นเจ้าของคนเดียว David.Kent@m365info.com

หมายเหตุ: สมมติว่ามีเจ้าของหลายรายอยู่แล้วสำหรับกลุ่มการแจกจ่าย และคุณแทนที่ด้วยเจ้าของคนเดียว เจ้าของที่มีอยู่ทั้งหมดจะถูกลบออก

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

Set-DistributionGroup -Identity "Distribution Group" -ManagedBy "Identity" -BypassSecurityGroupManagerCheck

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

Set-DistributionGroup -Identity "SalesUSA@m365info.com" -ManagedBy "David.Kent@m365info.com" -BypassSecurityGroupManagerCheck

เจ้าของคนใหม่ของกลุ่มการจัดจำหน่าย Sales USA ถูกแทนที่ด้วย David.Kent@m365info.com

กำหนดเจ้าของใหม่สำหรับกลุ่มการแจกจ่ายทั้งหมดที่สร้างขึ้นในสองสัปดาห์ที่ผ่านมา

เราต้องการมอบหมายให้ผู้ใช้ (Brenda.Smith@m365info.com) เป็นเจ้าของกลุ่มการแจกจ่ายสำหรับกลุ่มการแจกจ่ายที่มีอยู่ทั้งหมดที่สร้างขึ้นในช่วง 2 สัปดาห์ที่ผ่านมา

คำสั่ง PowerShell จะประกอบด้วยส่วนต่างๆ เหล่านี้:

  1. ในส่วนแรก เรากำหนดตัวแปร PowerShell $AllDistributionGroups จะจัดเก็บผลลัพธ์ของแบบสอบถาม PowerShell และดึงข้อมูลกลุ่มการแจกจ่ายทั้งหมดที่สร้างขึ้นในเวลาที่กำหนด
  2. เพื่อกำหนดช่วงเวลาสองสัปดาห์ เราต้องเพิ่มช่วงเวลา 14 วัน
  3. เราจะใช้คำสั่ง PowerShell ForEach เพื่อดำเนินการ กระบวนการวนซ้ำ กับผลลัพธ์ที่จะเพิ่ม Brenda Smith เป็นเจ้าของกลุ่มการแจกจ่าย (ความปลอดภัย) แต่ละกลุ่มที่มีอยู่ที่ปรากฏในรายการ
  4. คุณไม่สามารถดำเนินงานการจัดการได้ถ้าคุณไม่ได้เป็นเจ้าของกลุ่มการแจกจ่าย ดังนั้น ให้เพิ่มพารามิเตอร์ -BypassSecurityGroupManagerCheck ให้กับคำสั่ง PowerShell ดั้งเดิม

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

$AllDistributionGroups = Get-DistributionGroup -ResultSize Unlimited | Where-Object { $_.WhenCreated -ge (Get-Date).AddDays(-14) }

foreach ($Group in $AllDistributionGroups) {
    Set-DistributionGroup -Identity $Group.Name -ManagedBy "Brenda.Smith@m365info.com" -BypassSecurityGroupManagerCheck
}

เรามอบหมายให้ Brenda Smith เป็นเจ้าของเพียงคนเดียวของกลุ่มการแจกจ่ายทั้งหมดของคุณที่สร้างขึ้นในช่วงสองสัปดาห์ที่ผ่านมา

แทนที่เจ้าของจำนวนมากสำหรับกลุ่มการแจกจ่ายที่มีอยู่ทั้งหมด

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

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

เราต้องการให้กลุ่มการแจกจ่ายที่มีอยู่ทั้งหมดถูกแทนที่ด้วยเจ้าของเฉพาะ (Brenda.Smith@m365info.com)

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

Get-DistributionGroup -ResultSize Unlimited | Set-DistributionGroup -ManagedBy "Identity" -BypassSecurityGroupManagerCheck

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

Get-DistributionGroup -ResultSize Unlimited | Set-DistributionGroup -ManagedBy "Brenda.Smith@m365info.com" -BypassSecurityGroupManagerCheck

แค่นั้นแหละ!

อ่านเพิ่มเติม: ส่งออกสมาชิกกลุ่ม Azure AD เป็น CSV ด้วย PowerShell »

บทสรุป

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

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

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