使用 Azure AD 的 PowerShell 模块管理组时出现问题
Issue with using of PowerShell module for Azure AD to manage groups
各位工程师!
需要将组所有者从本地AD的属性“managedBy”(CN=%username%;
部分)转移到同一组的Azure AD的“所有者”字段(组是同步的,所以它有本地和 Azure AD 中的命名相同)。
问题是,这个过程需要自动化,但没有太多选择:
PowerShell 的 AAD 组管理模块(但它不适用于 PowerShell ver7,因为 .Net 的核心问题:https://github.com/MicrosoftDocs/azure-docs/issues/49896): https://docs.microsoft.com/en-us/azure/active-directory/enterprise-users/groups-settings-v2-cmdlets
Whosebug上另一个问题的回答,不过好像不是我的菜(因为需要处理Extensions):
Graph API 的某种变通方法,但这也不是我的选择,因为过程需要自动化:https://social.msdn.microsoft.com/Forums/azure/en-US/4a293240-5ffc-45be-bd73-43f8868e5fab/graph-api-getting-quotmanaged-byquot-attribute-for-a-group-synced-with-azure-ad-connect?forum=WindowsAzureAD
所以,也许有人遇到同样的需求,或者可能会建议使用 PowerShell 模块的解决方法,因为在超过 100 个组中添加所有者并没有太多乐趣
• 由于所有本地 Active Directory 组都已同步到 Azure AD,并且所有组在 Azure AD 中的命名与本地 Active Directory 的命名相同,因此您可以更改所有组的所有者通过执行以下命令从本地 AD 同步到 AAD 的组:-
‘ Get-AzureADGroup | Where {$_.DirSyncEnabled -eq $true} | Select -Property
DisplayName,DirSyncEnabled,LastDirSyncTime | export-csv ‘C:\syncgroup.csv’ |
ft -auto ’ --> This will give a list of all the groups with their object IDs
that are synced to Azure AD from Active Directory. Export them to a csv file
through the export-csv command.
• 导出后,通过插入分配给同步组所有者的服务主体的引用 ID 来排列 csv 文件。 运行 下面的脚本用于将组所有者成员资格分配给 csv 文件中存在的所有组的引用 ID。
$Groups = Import-Csv "C:\syncgroup.csv"
foreach ($Group in $Groups)
{
if (Get-AzureADGroup | Where {$_.DisplayName -eq $Group.DisplayName})
{
Write-Host "Getting ObjectID for: "$Group.DisplayName
$ObjectID = (Get-AzureADGroup | Where {$_.ObjectID -eq
$Group.ObjectID}).ObjectID
$ReferenceID = (Get-AzureADGroup | Where {$_.ReferenceID -eq
$Group.ReferenceID}).ReferenceID
$ObjectID
$ReferenceID
#Add-AzureADGroupOwner -ObjectId $ObjectID -RefObjectId $ReferenceID
}
}
更多信息请参考以下链接:-
https://docs.microsoft.com/en-us/powershell/module/azuread/add-azureadgroupowner?view=azureadps-2.0
各位工程师!
需要将组所有者从本地AD的属性“managedBy”(CN=%username%;
部分)转移到同一组的Azure AD的“所有者”字段(组是同步的,所以它有本地和 Azure AD 中的命名相同)。
问题是,这个过程需要自动化,但没有太多选择:
PowerShell 的 AAD 组管理模块(但它不适用于 PowerShell ver7,因为 .Net 的核心问题:https://github.com/MicrosoftDocs/azure-docs/issues/49896): https://docs.microsoft.com/en-us/azure/active-directory/enterprise-users/groups-settings-v2-cmdlets
Whosebug上另一个问题的回答,不过好像不是我的菜(因为需要处理Extensions):
Graph API 的某种变通方法,但这也不是我的选择,因为过程需要自动化:https://social.msdn.microsoft.com/Forums/azure/en-US/4a293240-5ffc-45be-bd73-43f8868e5fab/graph-api-getting-quotmanaged-byquot-attribute-for-a-group-synced-with-azure-ad-connect?forum=WindowsAzureAD
所以,也许有人遇到同样的需求,或者可能会建议使用 PowerShell 模块的解决方法,因为在超过 100 个组中添加所有者并没有太多乐趣
• 由于所有本地 Active Directory 组都已同步到 Azure AD,并且所有组在 Azure AD 中的命名与本地 Active Directory 的命名相同,因此您可以更改所有组的所有者通过执行以下命令从本地 AD 同步到 AAD 的组:-
‘ Get-AzureADGroup | Where {$_.DirSyncEnabled -eq $true} | Select -Property
DisplayName,DirSyncEnabled,LastDirSyncTime | export-csv ‘C:\syncgroup.csv’ |
ft -auto ’ --> This will give a list of all the groups with their object IDs
that are synced to Azure AD from Active Directory. Export them to a csv file
through the export-csv command.
• 导出后,通过插入分配给同步组所有者的服务主体的引用 ID 来排列 csv 文件。 运行 下面的脚本用于将组所有者成员资格分配给 csv 文件中存在的所有组的引用 ID。
$Groups = Import-Csv "C:\syncgroup.csv"
foreach ($Group in $Groups)
{
if (Get-AzureADGroup | Where {$_.DisplayName -eq $Group.DisplayName})
{
Write-Host "Getting ObjectID for: "$Group.DisplayName
$ObjectID = (Get-AzureADGroup | Where {$_.ObjectID -eq
$Group.ObjectID}).ObjectID
$ReferenceID = (Get-AzureADGroup | Where {$_.ReferenceID -eq
$Group.ReferenceID}).ReferenceID
$ObjectID
$ReferenceID
#Add-AzureADGroupOwner -ObjectId $ObjectID -RefObjectId $ReferenceID
}
}
更多信息请参考以下链接:-
https://docs.microsoft.com/en-us/powershell/module/azuread/add-azureadgroupowner?view=azureadps-2.0