Skip to content

Instantly share code, notes, and snippets.

@exactmike
Created October 4, 2018 23:00
Show Gist options
  • Select an option

  • Save exactmike/bcb0842709fe931e9da62b208b3a909d to your computer and use it in GitHub Desktop.

Select an option

Save exactmike/bcb0842709fe931e9da62b208b3a909d to your computer and use it in GitHub Desktop.
Nest OP Group in Master OL Group Process

Process for migrating cross forest DLs to Unified Cloud DL

Preparatory Steps to Intermediate State

  • User Specifies On Premises Distribution Lists to be nested

    • Validate that the identifier(s) are correct and the objects exist
  • Get the Distribution List Object(s)

    • Exchange On Premises Distribution List Object
    • Exchange Online Distribution List Object
  • Store Distribution List objects/attributes for later use/reference

    • json format
  • Transform Distribution List objects/attributes for application to Master Distribution List

    • User or Formula Specifies new values to use for the Distribution Lists to be nested when they are re-enabled for mail

      • new primarysmtpaddress (formula: ADObjectGUIDInStringFormat@smtpdomain)
      • new alias (formula: ADObjectGUIDInStringFormat)
      • new Display Name (formula: TBD)
      • new Name (formula: TBD)
      • Removal of AcceptMessagesOnlyFromSendersOrMembers or similar restrictions
    • User or Formula Specifies Attributes for new Exchange Online Master Distribution List

      • Name
      • Display Name
      • Alias
      • PrimarySMTPAddress
      • Any Additional SMTP Addresses (beyond those taken from the to be nested Distribution Lists)
      • By necessity, we will set proxyAddresses to include all proxyaddresses from the distribution lists to be nested and the legacyexchangedns of the on premises and online represenations of the distribution lists (as X500 addresses).
      • Any additional attributes to be set from the following
      'AcceptMessagesOnlyFrom','AcceptMessagesOnlyFromDLMembers','AcceptMessagesOnlyFromSendersOrMembers','Alias','BypassModerationFromSendersOrMembers','BypassNestedModerationEnabled','DisplayName','GrantSendOnBehalfTo','HiddenFromAddressListsEnabled','MailTip','MailTipTranslations','ManagedBy','ModeratedBy','ModerationEnabled','Name','PrimarySmtpAddress','RejectMessagesFrom','RejectMessagesFromDLMembers','RejectMessagesFromSendersOrMembers','ReportToManagerEnabled','ReportToOriginatorEnabled','RequireSenderAuthenticationEnabled','SendModerationNotifications','SendOofMessageToOriginatorEnabled','SimpleDisplayName'
      
  • Output Intermediate Objects for Implementation and/or Human Review

    • An Object with All Attributes to be applied to new Master Exchange Online Distribution List
    • An Object with All Attributes to be applied to each to be nested Distribution List

Implementation of the Master List and reconfiguration of the lists to be nested

  • Remove On Premises Distribution Lists to be nested from Azure AD synchronization scope (by removing ms-DS-ConsistencyGUID)
  • Mail disable On Premises Distribution Lists to be nested
  • Initiate Azure AD Synchronization
  • Verify Removal of Distribution Lists to be nested from Exchange Online
  • Create the Master Distribution List in Exchange Online
    • set the following as required with the New-DistributionGroup command

      'Name','Alias','BypassNestedModerationEnabled','DisplayName','ManagedBy','ModeratedBy','ModerationEnabled','Notes','PrimarySmtpAddress','SendModerationNotifications','RequireSenderAuthenticationEnabled'
      
    • set the following as required with the Set-DistributionGroup command

      'AcceptMessagesOnlyFrom','AcceptMessagesOnlyFromDLMembers','AcceptMessagesOnlyFromSendersOrMembers','CustomAttribute1','CustomAttribute10','CustomAttribute11','CustomAttribute12','CustomAttribute13','CustomAttribute14','CustomAttribute15','CustomAttribute2','CustomAttribute3','CustomAttribute4','CustomAttribute5','CustomAttribute6','CustomAttribute7','CustomAttribute8','CustomAttribute9','EmailAddresses','EmailAddressPolicyEnabled','ExtensionCustomAttribute1','ExtensionCustomAttribute2','ExtensionCustomAttribute3','ExtensionCustomAttribute4','ExtensionCustomAttribute5','GrantSendOnBehalfTo','HiddenFromAddressListsEnabled','MailTip','MailTipTranslations','MaxReceiveSize','MaxSendSize','RejectMessagesFrom','RejectMessagesFromDLMembers','RejectMessagesFromSendersOrMembers','ReportToManagerEnabled','ReportToOriginatorEnabled','SendOofMessageToOriginatorEnabled','SimpleDisplayName'
      
    • For each on Premises Distribution List to be nested

      • set the following with the Enable-DistributionGroup command
      'Alias','DisplayName','PrimarySmtpAddress'
      
      • set the following as required with the Set-DistributionGroup command
      'Name','BypassNestedModerationEnabled','ManagedBy','ModeratedBy','ModerationEnabled','Notes','SendModerationNotifications','RequireSenderAuthenticationEnabled','AcceptMessagesOnlyFrom','AcceptMessagesOnlyFromDLMembers','AcceptMessagesOnlyFromSendersOrMembers','CustomAttribute1','CustomAttribute10','CustomAttribute11','CustomAttribute12','CustomAttribute13','CustomAttribute14','CustomAttribute15','CustomAttribute2','CustomAttribute3','CustomAttribute4','CustomAttribute5','CustomAttribute6','CustomAttribute7','CustomAttribute8','CustomAttribute9','EmailAddresses','EmailAddressPolicyEnabled','ExtensionCustomAttribute1','ExtensionCustomAttribute2','ExtensionCustomAttribute3','ExtensionCustomAttribute4','ExtensionCustomAttribute5','GrantSendOnBehalfTo','HiddenFromAddressListsEnabled','MailTip','MailTipTranslations','MaxReceiveSize','MaxSendSize','RejectMessagesFrom','RejectMessagesFromDLMembers','RejectMessagesFromSendersOrMembers','ReportToManagerEnabled','ReportToOriginatorEnabled','SendOofMessageToOriginatorEnabled','SimpleDisplayName'
      
      • reset the ms-DS-ConsistencyGUID to bring the object back into Azure AD Synchronization scope
      • Initiate Azure AD Synchronization
      • Verify presence of list object in Exchange Online (using it's new primarysmtpaddress)
      • Add as member to the Master List

Post Implementation Testing Plan

TBD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment