วิธีเพิ่มสมาชิกในกลุ่มการจัดจำหน่ายด้วย 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) ได้
การเพิ่มผู้ใช้ในกลุ่มการแจกจ่าย
คุณสามารถเพิ่มผู้ใช้เป็นสมาชิกใหม่ในกลุ่มการแจกจ่ายที่มีอยู่ได้ตลอดเวลา เราจะแสดงให้คุณเห็นสถานการณ์ต่างๆ:
- เพิ่มสมาชิกคนเดียวในกลุ่มการแจกจ่ายที่มีอยู่
- เพิ่มผู้ใช้จำนวนมากไปยังกลุ่มการแจกจ่ายที่มีอยู่กลุ่มเดียว
- เพิ่มผู้ใช้หลายรายในกลุ่มการแจกจ่ายที่มีอยู่กลุ่มเดียว
- เพิ่มผู้ใช้จำนวนมากในกลุ่มการแจกจ่ายที่มีอยู่ทั้งหมด
สำหรับสิ่งนี้ เราจำเป็นต้องใช้ 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
- เรียกใช้คำสั่ง PowerShell เพื่อส่งออกรายการกล่องจดหมายของผู้ใช้ที่ใช้งานอยู่ในองค์กรของคุณ
Get-Mailbox -ResultSize Unlimited | Select DisplayName, Alias, PrimarySmtpAddress | Export-Csv "C:\temp\Distribution Group Members.csv" -NoTypeInformation -Encoding UTF8- ไปที่โฟลเดอร์ C:\temp
- เปิดไฟล์ CSV เพื่อดูรายการกล่องจดหมายของผู้ใช้ทั้งหมด
- ผู้ใช้แต่ละคนมี ข้อมูลประจำตัว หลายรายการ เช่น ชื่อที่แสดง, ชื่อแทน และ ที่อยู่ SMTP หลัก
- คุณสามารถ แก้ไข รายชื่อและลบผู้ใช้ที่คุณไม่ต้องการเพิ่มเป็นสมาชิกของกลุ่มการแจกจ่ายได้ (ไม่บังคับ)
ในตัวอย่างของเรา เราต้องการเพิ่มรายชื่อผู้ใช้นี้ไปยังกลุ่มการแจกจ่ายเฉพาะชื่อ Sales France
- พิมพ์ ข้อมูลประจำตัวของกลุ่มการแจกจ่ายเฉพาะใน บรรทัดหมายเลข 3 ในสคริปต์ด้านล่าง
- เรียกใช้สคริปต์ 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 คอลัมน์:
- เปิด แผ่นจดบันทึก หรือ Microsoft Excel
- พิมพ์ GroupName ที่ด้านบนของคอลัมน์แรก
- แสดงรายการกลุ่มการแจกจ่าย ที่อยู่ SMTP หลัก ที่มีอยู่
- พิมพ์ สมาชิก ที่ด้านบนของคอลัมน์ที่สอง
- ระบุ UserPrincipalName ของสมาชิก
หมายเหตุ: ชื่อคอลัมน์ GroupName ต้องไม่มีการเว้นวรรค และต้องมีกลุ่มการแจกจ่ายอยู่
ดูตัวอย่างไฟล์ CSV ด้านล่าง
- สร้างโฟลเดอร์ temp หากคุณยังไม่มีอยู่ในไดรฟ์ (C:)
- ตั้งชื่อไฟล์ DL Group Members.csv
- บันทึกเป็นประเภท CSV (คั่นด้วยจุลภาค (*.csv)
- คลิกบันทึก
- เรียกใช้สคริปต์ 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 คอลัมน์:
- เปิด แผ่นจดบันทึก หรือ Microsoft Excel
- พิมพ์ GroupName ที่ด้านบนของคอลัมน์แรก
- แสดงรายการที่อยู่ SMTP หลักของกลุ่มการแจกจ่ายที่มีอยู่
- ป้อน ประเภท ที่ด้านบนของคอลัมน์ที่สอง
- พิมพ์ การกระจาย หรือ ความปลอดภัย
หมายเหตุ: คอลัมน์ GroupName ต้องไม่มีการเว้นวรรค และต้องมีกลุ่มการแจกจ่ายอยู่
- สร้างโฟลเดอร์ temp หากคุณยังไม่มีอยู่ในไดรฟ์ (C:)
- ตั้งชื่อไฟล์ DL Group Type.csv
- บันทึกเป็นประเภท CSV (คั่นด้วยจุลภาค (*.csv)
- คลิกบันทึก
- ตรวจสอบไฟล์ CSV ด้วย Import-Csv cmdlet
เพื่อให้แน่ใจว่า PowerShell สามารถอ่านไฟล์ได้ ให้เรียกใช้ Import-Csv cmdlet
Import-Csv "C:\temp\DL Group Type.csv"- ระบุ UserPrincipalName ของสมาชิกใน หมายเลขบรรทัด 3
- เรียกใช้สคริปต์ 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 อย่าลืมติดตามเราและแบ่งปันบทความนี้







