วิธีเพิ่มเจ้าของในกลุ่มการจัดจำหน่ายด้วย 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 เพื่อแทนที่เจ้าของที่มีอยู่:
- เปิด Microsoft Excel
- พิมพ์ GroupName ที่ด้านบนของคอลัมน์แรก
- แสดงรายการกลุ่มการแจกจ่าย ที่อยู่ SMTP หลัก
- พิมพ์ ManagedBy ที่ด้านบนของคอลัมน์ที่สอง
- รายชื่อเจ้าของกลุ่มการแจกจ่ายใหม่ UserPrincipalName
ตั้งชื่อไฟล์ว่า เจ้าของกลุ่ม DL และบันทึกเป็นไฟล์ CSV ในโฟลเดอร์ temp หากคุณยังไม่มีไฟล์นั้นอยู่ใน (C:)แข็งแกร่ง> ขับ
- เพื่อให้แน่ใจว่า PowerShell สามารถอ่านไฟล์ได้ ให้เรียกใช้ Import-Csv cmdlet
Import-Csv "C:\temp\DL Group Owner.csv"- เรียกใช้สคริปต์ 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 จะประกอบด้วยส่วนต่างๆ เหล่านี้:
- ในส่วนแรก เรากำหนดตัวแปร PowerShell $AllDistributionGroups จะจัดเก็บผลลัพธ์ของแบบสอบถาม PowerShell และดึงข้อมูลกลุ่มการแจกจ่ายทั้งหมดที่สร้างขึ้นในเวลาที่กำหนด
- เพื่อกำหนดช่วงเวลาสองสัปดาห์ เราต้องเพิ่มช่วงเวลา 14 วัน
- เราจะใช้คำสั่ง PowerShell ForEach เพื่อดำเนินการ กระบวนการวนซ้ำ กับผลลัพธ์ที่จะเพิ่ม Brenda Smith เป็นเจ้าของกลุ่มการแจกจ่าย (ความปลอดภัย) แต่ละกลุ่มที่มีอยู่ที่ปรากฏในรายการ
- คุณไม่สามารถดำเนินงานการจัดการได้ถ้าคุณไม่ได้เป็นเจ้าของกลุ่มการแจกจ่าย ดังนั้น ให้เพิ่มพารามิเตอร์ -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 อย่าลืมติดตามเราและแบ่งปันบทความนี้


