问题描述
我想唯一地标识Exchange Online中使用的组,以便可以在Azure AD中找到相同的组。就我而言,该组具有对邮箱的权限,如PowerShell中Get-MailBoxPermission
返回的那样。
在使用 ExchangePowerShell 模块中的Get-Group
cmdlet时,我得到了一些识别属性,但是这些属性都没有帮助识别Azure AD中的同一组:
- displayName(不是唯一且不可更改)
- SamAccountName(通过Graph API或AzureAD PowerShell模块不可用)
- Sid(特定于Exchange Online,与Azure AD中的ID不同)
- WindowsEmailAddress(可更改,不是必需的)
- ExchangeObjectId(不适用于Graph API或AzureAD PowerShell模块)
在Azure AD中,我还有其他一组识别属性(例如Graph API):
- ID(在Azure AD中显示的对象ID,在Exchange Online中不可用)
- displayName(不是唯一且不可更改)
- 邮件(可更改,不是必需的)
- SecurityIdentifier(特定于Azure AD,与Exchange Online中不同)
似乎我唯一的选择是使用displayName组合,也许使用WindowsEmailAddress / Mail,这太可怕了吗?
还有其他方法可以唯一地标识出将它们匹配在一起的组吗?
更新: 我的情况如下: 我需要处理所有邮箱的所有权限:
- 我基本上每个邮箱都叫
Get-MailBoxPermission
。 - 通过扩展属性“用户”,我可以获取允许的用户或组的Exchange-SID。
- 然后我可以将此Exchange-SID与
Get-User
或Get-MailBox
cmdlet返回的用户或组进行匹配。 - 我可以通过匹配
ExternalDirectoryObjectId
返回的Get-User
来找到相应的Azure AD用户。 - 该组没有属性
ExternalDirectoryObjectId
,在Azure AD中找不到其他唯一标识和不可更改的属性。
解决方法
案例1:将组ID从Graph API匹配到Exchange Online Commandlet
从图表中获取组的列表,并将其与Exchange Online Commandlet中的组进行匹配。
从Graph API获得的ID将与Get-Group的ID匹配
以下是Graph响应的摘录:
{
"id": "c0749057-8163-4228-be88-1a0df3aab7b1","deletedDateTime": null,"classification": null,"createdDateTime": "2020-09-08T11:21:53Z","creationOptions": [],"description": "This is a new Group","displayName": "NewGroup1","expirationDateTime": null..............
如果获得ID:c0749057-8163-4228-be88-1a0df3aab7b1并运行以下命令,则将获得相应的组:
Get-Group -Identity "c0749057-8163-4228-be88-1a0df3aab7b1"
输出:
情况2:将Exchange Online Commandlet中的组ID与图表组ID匹配
(更新)
只有统一组在Graph API中可见(或)具有ExternalDirectoryObjectId
因此您可以运行
(Get-UnifiedGroup -Identity <Your Exchange Group ID>).ExternalDirectoryObjectId
这将返回组的Azure AD对象ID。
HTH!