Điểm:0

Cách thêm Thành viên nhóm AAD SG vào EXO DG và so sánh

lá cờ it

Hiện tại tôi đang bận với một kịch bản cần thực hiện như sau:

Tập lệnh cần kiểm tra nhóm Azure AD và so sánh các đột biến trong EXO DG. Tôi đã viết và gộp một số lệnh vào và ra, nhưng tôi không thể làm cho nó hoạt động được.Tôi không có lỗi khi chạy, nhưng người dùng đã bị xóa khỏi nhóm SG sẽ không bị xóa khỏi DG trong EXO.

Tại sao tôi làm điều này? Tôi có một câu hỏi mở để kích hoạt thư của Nhóm bảo mật Azure AD. Rất tiếc, Nhóm bảo mật Azure AD không thể là nhóm hỗ trợ thư.

Trên 'New-AzureADMSGroup' hoặc 'Set-AzureADMSGroup' có một đối tượng MailEnabled nhưng không được hỗ trợ.

Có một MSG EXO, chỉ cần không đáp ứng nhu cầu, bởi vì bạn không thể sử dụng nhóm này trong Gói truy cập hoặc Ứng dụng doanh nghiệp.

Có EXO DDL, cũng không đáp ứng được nhu cầu, bởi vì người dùng trong AAD SG được yêu cầu, chỉ là không có cùng tiêu chí để lọc. Điểm chung duy nhất của người dùng là tư cách thành viên của AAD SG.

#Azure AD
$AzureADGroup1 = "xxxxx-xxx-xxxx-xx-xxxxxxx"
$AzureADGroup1Members = Get-AzureADGroupMember -ObjectId $AzureADGroup1 -Tất cả $true | Thư chọn đối tượng

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

foreach ($AzureADGroup1Member in $AzureADGroup1Members) {
#nếu người dùng đã thêm trả về $false
nếu (!($DGMembers -match $AzureADGroup1Member))
{
Add-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member.Mail -Confirm:$false -ErrorAction SilentlyContinue
}

Máy chủ ghi -ForegroundColor Màu xanh lục $AzureADGroup1Member.Mail"được thêm vào"

nếu (!($DGMembers -notmatch $AzureADGroup1Member))
{
    Xóa-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member.Mail -Confirm:$false -ErrorAction SilentlyContinue
}

Máy chủ ghi -ForegroundColor Màu xanh lục $AzureADGroup1Member.Mail"đã bị xóa"

}

CẬP NHẬT: Bây giờ tôi đã tạo một kịch bản khác, nó không được gọn gàng cho lắm.

1: Xóa tất cả thành viên khỏi DG

2: Truy xuất tất cả các thành viên từ AAD SG

3: thêm tất cả các thành viên trở lại DG

#EXO: Xóa DG

$DG = "DG1"

$DGMembers = (Get-distributiongroupmember -identity $DG).PrimarySmtpAddress



foreach ($DGMember bằng $DGMembers) {

    Xóa-DistributionGroupMember -Identity $DG -Member $DGMember -Confirm:$false -ErrorAction SilentlyContinue

    Máy chủ lưu trữ -ForegroundColor Green $DGMember "đã bị xóa"

}



#Azure AD: Nhận AAD SG

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

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



#EXO: Lại lấp đầy DG

foreach ($AzureADGroup1Member in $AzureADGroup1Members) {

    Add-DistributionGroupMember -Identity $DG -Member $AzureADGroup1Member -Confirm:$false -ErrorAction SilentlyContinue

    Write-Host -ForegroundColor Green $AzureADGroup1Member "được thêm vào"

    }

Chà, bản thân nó không thành vấn đề, chỉ là AAD SG có hơn 1100 thành viên, tôi đương nhiên có thể điều hành nó vào lúc 1 giờ mỗi đêm, nhưng tôi sợ rằng anh ấy có thể không sẵn sàng vào lúc 7 giờ về lâu dài.

Điểm:0
lá cờ it

Tôi trả lời câu hỏi của riêng tôi cho độc giả trong tương lai. Điều quan trọng là làm việc với chức năng So sánh đối tượng trong PowerShell!

#Azure AD: Nhận AAD SG
$AzureADGroup = "xxx-xxx-xxx-xxx-xxxx"
$AzureADGroupMembers = (Get-AzureADGroupMember -ObjectId $AzureADGroup -All $true).Mail

#EXO: Nhận EXO DG
$DG = "[email protected]"
$DGMembers = (Get-distributiongroupmember -identity $DG).PrimarySmtpAddress


# SideIndicator: "<=" = KHÔNG CÓ TRONG EXO DG - THÊM THÀNH VIÊN NHÓM AAD SG VÀO EXO DG
Đối tượng so sánh -ReferenceObject $AzureADGroupMembers -DifferenceObject $DGMembers | Đối tượng ở đâu {$_.SideIndicator -eq "<="} | ForEach-Object {
    Add-DistributionGroupMember -Identity $DG -Member $_.InputObject -Confirm:$false
    Máy chủ lưu trữ -ForegroundColor Green $_.InputObject "được thêm vào"
}

# SideIndicator: "=>" = KHÔNG TRONG AAD SG - XÓA THÀNH VIÊN NHÓM EXO DG KHỎI AAD SG 
Đối tượng so sánh -ReferenceObject $AzureADGroupMembers -DifferenceObject $DGMembers | Đối tượng ở đâu {$_.SideIndicator -eq "=>"} | ForEach-Object {
    Loại bỏ-DistributionGroupMember -Identity $DG -Member $_.InputObject -Confirm:$false
    Máy chủ lưu trữ -ForegroundColor Green $_.InputObject "đã bị xóa"
}

Write-Host -ForegroundColor Green "Tập lệnh đã hoàn tất!"

Bạn có thể điền DG một lần với:

#Azure AD: Nhận AzureADGroup1 và AzureADGroup1Members
$AzureADGroup1 = "xxxx-xxx-xxxx-xxx"
$AzureADGroup1Members = (Get-AzureADGroupMember -ObjectId $AzureADGroup1 -All $true).Mail

#EXO: Đặt DistributionGroupMembers từ AzureADGroup1Members trong AzureADGroup1
foreach ($AzureADGroup1Member in $AzureADGroup1Members) {
Add-DistributionGroupMember -Identity [email protected] -Member $AzureADGroup1Member -Confirm:$false
Write-Host -ForegroundColor Green $AzureADGroup1Member "được thêm vào"
}

Write-Host -ForegroundColor Green "Tập lệnh đã hoàn tất!"

Sau khi lấp đầy một lần, bạn có thể thực hiện một tác vụ tự động hóa so sánh cả hai nhóm mỗi ngày.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.