Score:0

วิธีเพิ่ม AAD SG GroupMembers ใน EXO DG และเปรียบเทียบ

ธง it

ขณะนี้ฉันกำลังยุ่งกับสคริปต์ที่ต้องทำสิ่งต่อไปนี้:

สคริปต์จำเป็นต้องตรวจสอบกลุ่ม Azure AD และเปรียบเทียบการกลายพันธุ์ใน EXO DG ฉันได้เขียนและรวมกลุ่มเข้าและออก แต่ฉันไม่สามารถใช้งานได้ฉันไม่มีข้อผิดพลาดเมื่อทำงาน แต่ผู้ใช้ที่ถูกลบจากกลุ่ม SG จะไม่ถูกลบออกจาก DG ใน EXO

ทำไมฉันถึงทำเช่นนี้? ฉันมีคำถามเปิดที่จะทำให้ Azure AD Security Group เปิดใช้งานเมล น่าเสียดายที่ Azure AD Security Groups ไม่สามารถเป็นกลุ่มที่เปิดใช้งานเมลได้

บน 'New-AzureADMSGroup' หรือ 'Set-AzureADMSGroup' มีวัตถุ MailEnabled แต่ไม่รองรับ

การมีผงชูรส EXO อย่าเพิ่งเติมเต็มความต้องการ เพราะคุณไม่สามารถใช้กลุ่มนี้ภายใน Access Packages หรือ Enterprise Applications

การมี EXO DDL ก็ไม่ได้ตอบสนองความต้องการ เนื่องจากผู้ใช้ใน AAD SG ที่ร้องขอนั้นไม่มีเกณฑ์เดียวกันในการกรอง สิ่งเดียวที่ผู้ใช้มีเหมือนกันคือการเป็นสมาชิกของ AAD SG

#Azure AD
$AzureADGroup1 = "xxxxx-xxx-xxxx-xx-xxxxxxx"
$AzureADGroup1Members = Get-AzureADGroupMember -ObjectId $AzureADGroup1 -All $true | Select-Object Mail

#EXO
$DGMembers = (รับ-distributiongroupmember -identity [email protected]).primarysmtpaddress

foreach ($AzureADGroup1Member ใน $AzureADGroup1Members) {
#ถ้าผู้ใช้เพิ่มแล้วส่งคืน $false
ถ้า (!($DGMembers -match $AzureADGroup1Member))
{
Add-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member.Mail -Confirm:$false -ErrorAction SilentlyContinue
}

เขียนโฮสต์ -ForegroundColor สีเขียว $AzureADGroup1Member.Mail"ถูกเพิ่ม"

ถ้า (!($DGMembers -ไม่ตรงกับ $AzureADGroup1Member))
{
    Remove-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member.Mail -Confirm:$false -ErrorAction SilentlyContinue
}

เขียนโฮสต์ - พื้นหน้าสีเขียว $AzureADGroup1Member.Mail "ถูกลบ"

}

อัปเดต: ตอนนี้ฉันได้ทำสคริปต์อื่นซึ่งไม่เรียบร้อยมาก

1: ลบสมาชิกทั้งหมดออกจาก DG

2: รับสมาชิกทั้งหมดจาก AAD SG

3: เพิ่มสมาชิกทั้งหมดกลับไปที่ DG

#EXO: ล้าง DG

$DG = "ดีจี1"

$DGMembers = (รับการแจกจ่ายกลุ่มสมาชิก -identity $DG).PrimarySmtpAddress



foreach ($DGMember ใน $DGMembers) {

    Remove-DistributionGroupMember -เอกลักษณ์ $DG -สมาชิก $DGMember -ยืนยัน:$false -ErrorAction SilentlyContinue

    Write-Host -ForegroundColor Green $DGMember "ถูกลบ"

}



#Azure AD: รับ AAD SG

$AzureADGroup1 = "xxxx-xxxx-xxx-xxx-xxx"

$AzureADGroup1Members = (Get-AzureADGroupMember -ObjectId $AzureADGroup1 -All $true).Mail



#EXO: เติม DG อีกครั้ง

foreach ($AzureADGroup1Member ใน $AzureADGroup1Members) {

    เพิ่ม DistributionGroupMember -เอกลักษณ์ $DG -สมาชิก $AzureADGroup1Member -ยืนยัน:$false -ErrorAction Silently ดำเนินการต่อ

    เขียนโฮสต์ - พื้นหน้าสีเขียว $AzureADGroup1Member "ถูกเพิ่ม"

    }

ในตัวมันเองไม่ใช่ปัญหา เพียงแต่ว่า AAD SG มีสมาชิกมากกว่า 1,100 คน แน่นอนว่าฉันสามารถดำเนินการได้ตอน 1 ทุ่มทุกคืน แต่ฉันเกรงว่าเขาอาจจะไม่พร้อมตอน 7 โมง ในระยะยาว.

Score:0
ธง it

ฉันตอบคำถามของตัวเองสำหรับผู้อ่านในอนาคต กุญแจสำคัญคือการทำงานกับฟังก์ชันเปรียบเทียบวัตถุใน PowerShell!

#Azure AD: รับ AAD SG
$AzureADGroup = "xxx-xxx-xxx-xxx-xxxx"
$AzureADGroupMembers = (Get-AzureADGroupMember -ObjectId $AzureADGroup -All $true).Mail

#EXO: รับ EXO DG
$DG = "[email protected]"
$DGMembers = (รับการแจกจ่ายกลุ่มสมาชิก -identity $DG).PrimarySmtpAddress


# SideIndicator: "<=" = ไม่ได้อยู่ใน EXO DG - เพิ่ม AAD SG GROUPMEMBER ไปยัง EXO DG
เปรียบเทียบวัตถุ -ReferenceObject $AzureADGroupMembers -DifferenceObject $DGMembers | Where-Object {$_.SideIndicator -eq "<="} | สำหรับแต่ละวัตถุ {
    Add-DistributionGroupMember -Identity $DG -Member $_.InputObject -Confirm:$false
    เขียนโฮสต์ -ForegroundColor สีเขียว $_.InputObject "ถูกเพิ่ม"
}

# SideIndicator: "=>" = ไม่อยู่ใน AAD SG - ลบสมาชิกกลุ่ม EXO DG ออกจาก AAD SG 
เปรียบเทียบวัตถุ -ReferenceObject $AzureADGroupMembers -DifferenceObject $DGMembers | Where-Object {$_.SideIndicator -eq "=>"} | สำหรับแต่ละวัตถุ {
    Remove-DistributionGroupMember -Identity $DG -Member $_.InputObject -Confirm:$false
    Write-Host -ForegroundColor สีเขียว $_.InputObject "ถูกลบ"
}

Write-Host -ForegroundColor สีเขียว "สคริปต์เสร็จแล้ว!"

คุณสามารถกรอก DG หนึ่งครั้งด้วย:

#Azure AD: รับ AzureADGroup1 และ AzureADGroup1Members
$AzureADGroup1 = "xxxx-xxx-xxxx-xxx"
$AzureADGroup1Members = (Get-AzureADGroupMember -ObjectId $AzureADGroup1 -All $true).Mail

#EXO: ตั้งค่า DistributionGroupMembers จาก AzureADGroup1Members ใน AzureADGroup1
foreach ($AzureADGroup1Member ใน $AzureADGroup1Members) {
Add-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member -Confirm:$false
เขียนโฮสต์ - พื้นหน้าสีเขียว $AzureADGroup1Member "ถูกเพิ่ม"
}

Write-Host -ForegroundColor สีเขียว "สคริปต์เสร็จแล้ว!"

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

โพสต์คำตอบ

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