我想將 Exchange Online 中的所有共享郵箱與 Azure sec 組中的成員進行比較,并匯入 Azure sec 組中的差異。我相信它在最后 3 行的某個地方失敗了。它用于備份解決方案,我不是代碼的創建者。
獲取-EXORecipient -ResultSize 無限制 -RecipientTypeDetails "SharedMailbox" | 選擇 PrimarySMTPAddress | 匯出-Csv "C:\Users\mnym\Downloads\Sharedmailboxes\sharedmailboxes.csv"
$GroupMembership = Get-AzureADGroupMember -ObjectId "group id" -top 10000 | 選擇物件@{Name="PrimarySMTPAddress";Expression={$_.userprincipalname}} | 匯出-Csv "C:\Users\mnym\Downloads\Sharedmailboxes\Groupmembership.csv"
$File1 = Import-Csv -Path "C:\Users\mnym\Downloads\Sharedmailboxes\sharedmailboxes.csv"
$File2 = (Import-Csv -Path "C:\Users\mnym\Downloads\Sharedmailboxes\Groupmembership.csv").PrimarySMTPAddress
$檔案1 | where-object{$_.PrimarySMTPAddress -notin $File2} | 匯出-csv-路徑“C:\Users\mnym\Downloads\sharedmailboxes\difference.csv”
$Diff = Import-Csv -Path "C:\Users\mnym\Downloads\sharedmailboxes\difference.csv"
檔案 difference.csv 被填充并格式化為 A #TYPE Selected.System.Management.Automation.PSCustomObject PrimarySmtpAddress [email protected]
$UserObjectId = Import-Csv -Path "C:\Users\mnym\Downloads\sharedmailboxes\difference.csv" | ForEach-Object {get-azureaduser -searchstring $_.PrimarySmtpAddress}
$用戶物件ID | 選擇物件ID | 匯出-csv-路徑“C:\Users\mnym\Downloads\sharedmailboxes\userobjectid.csv”
執行上述命令后,檔案 userobjectid.csv 為空 :(
Import-Csv -Path "C:\Users\mnym\Downloads\sharedmailboxes\userobjectid.csv" | ForEach-Object {Add-AzureADGroupMember -ObjectId "group id" -Refobjectid $_.objectid}
我試圖匯入diff.csv,但我無法讓Refobjectid與CSV匹配,我得到“無法將引數系結到引數'RefObjectId',因為它為空”。
uj5u.com熱心網友回復:
不要將您的檔案系統用作變數注冊表 - 無需將資料寫入 CSV 檔案,只需將其直接讀回記憶體:)
您的代碼可能很簡單:
# Define the target group id
$groupID = "group id"
# Start by creating a set of all email addresses that are already members of the security group
$securityGroupMembers = [System.Collections.Generic.HashSet[string]]::new([StringComparer]::OrdinalIgnoreCase)
Get-AzureADGroupMember -ObjectId $groupID -Top 10000 |ForEach-Object {
[void]$securityGroupMembers.Add($_.PrimarySMTPAddress)
}
# Then fetch the shared mailbox and check if they're already members of the group
Get-EXORecipient -ResultSize unlimited -RecipientTypeDetails "SharedMailbox" |ForEach-Object {
if(-not $securityGroupMembers.Contains($_.PrimarySMTPAddress)){
# Add shared mailbox to group
Add-AzureADGroupMember -ObjectId $groupID -Refobjectid $_.ObjectId
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/530779.html
標籤:电源外壳办公室365
上一篇:如何使用powershell將看似二進制編碼的檔案轉換為utf8編碼?
下一篇:如何使用單個命令在Ubuntu上將gitpush`gitpush`到GitHub,而不必每次都輸入我的電子郵件?
