Ejemplo n.º 1
0
        private ITenantRecipientSession CreateRecipientSession(ADObjectId ouObjId)
        {
            ADSessionSettings adsessionSettings = ADSessionSettings.FromAllTenantsObjectId(ouObjId);

            adsessionSettings.IncludeSoftDeletedObjects        = true;
            adsessionSettings.TenantConsistencyMode            = TenantConsistencyMode.IncludeRetiredTenants;
            adsessionSettings.RetiredTenantModificationAllowed = true;
            return(DirectorySessionFactory.Default.CreateTenantRecipientSession(false, ConsistencyMode.PartiallyConsistent, adsessionSettings, 421, "CreateRecipientSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Relocation\\RemoveTenantRelocationRequest.cs"));
        }
Ejemplo n.º 2
0
        public static ExchangeConfigurationUnit GetExchangeConfigurationUnit(ADObjectId organizationMailboxId)
        {
            if (!ADSession.IsTenantIdentity(organizationMailboxId, organizationMailboxId.GetPartitionId().ForestFQDN))
            {
                throw new InvalidOperationException();
            }
            ADSessionSettings           sessionSettings            = ADSessionSettings.FromAllTenantsObjectId(organizationMailboxId);
            ITenantConfigurationSession tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 495, "GetExchangeConfigurationUnit", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\OrganizationMailbox\\OrganizationMailbox.cs");
            ExchangePrincipal           exchangePrincipal          = OrganizationMailbox.GetExchangePrincipal(organizationMailboxId);

            return(tenantConfigurationSession.Read <ExchangeConfigurationUnit>(exchangePrincipal.MailboxInfo.OrganizationId.ConfigurationUnit));
        }
Ejemplo n.º 3
0
 internal override ADSessionSettings FromAllTenantsOrRootOrgAutoDetect(ADObjectId id)
 {
     if (id.DomainId == null)
     {
         return(ADSessionSettings.FromRootOrgScopeSet());
     }
     if (!ADSessionSettings.IsForefrontObject(id))
     {
         return(ADSessionSettings.FromRootOrgScopeSet());
     }
     return(ADSessionSettings.FromAllTenantsObjectId(id));
 }
Ejemplo n.º 4
0
        private static ExchangePrincipal GetExchangePrincipal(ADObjectId organizationMailboxId)
        {
            IRecipientSession recipientSession;

            if (ADSession.IsTenantIdentity(organizationMailboxId, organizationMailboxId.GetPartitionId().ForestFQDN))
            {
                ADSessionSettings sessionSettings = ADSessionSettings.FromAllTenantsObjectId(organizationMailboxId);
                recipientSession = DirectorySessionFactory.Default.CreateTenantRecipientSession(null, null, LcidMapper.DefaultLcid, true, ConsistencyMode.IgnoreInvalid, null, sessionSettings, 515, "GetExchangePrincipal", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\OrganizationMailbox\\OrganizationMailbox.cs");
            }
            else
            {
                ADSessionSettings sessionSettings2 = ADSessionSettings.FromRootOrgScopeSet();
                recipientSession = DirectorySessionFactory.Default.CreateRootOrgRecipientSession(null, null, LcidMapper.DefaultLcid, true, ConsistencyMode.IgnoreInvalid, null, sessionSettings2, 528, "GetExchangePrincipal", "f:\\15.00.1497\\sources\\dev\\data\\src\\storage\\OrganizationMailbox\\OrganizationMailbox.cs");
            }
            ADUser aduser = recipientSession.Read(organizationMailboxId) as ADUser;

            if (aduser == null)
            {
                throw new ADNoSuchObjectException(DirectoryStrings.OrganizationMailboxNotFound(organizationMailboxId.ToString()));
            }
            return(ExchangePrincipal.FromADUser(aduser, RemotingOptions.AllowCrossSite));
        }
Ejemplo n.º 5
0
        private void PrepareSessionsForTenant()
        {
            this.rootOrgId = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest();
            if (this.Organization != null)
            {
                this.ResolveOrganization();
                this.LogReadObject(this.organization);
                this.orgDomainRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(this.organization.OriginatingServer, false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAllTenantsObjectId(this.organization.Id), 479, "PrepareSessionsForTenant", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\SetupTaskBase.cs");
            }
            if (this.organization != null)
            {
                this.rootOrgId = ((null != this.organization.Id.GetPartitionId() && this.organization.Id.GetPartitionId().ForestFQDN != null) ? ADSystemConfigurationSession.GetRootOrgContainerId(this.organization.Id.GetPartitionId().ForestFQDN, null, null) : ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest());
            }
            ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(this.rootOrgId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, false);

            this.recipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(this.DomainController, false, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 503, "PrepareSessionsForTenant", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\SetupTaskBase.cs");
            this.recipientSession.UseGlobalCatalog = false;
            this.configurationSession                   = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(this.DomainController, false, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 514, "PrepareSessionsForTenant", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\SetupTaskBase.cs");
            this.domainConfigurationSession             = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(this.DomainController, false, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 521, "PrepareSessionsForTenant", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\SetupTaskBase.cs");
            this.domainConfigurationSession.UseConfigNC = false;
            this.ReadRootDomainFromDc(base.CurrentOrganizationId);
            this.rootDomainRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(this.rootDomain.OriginatingServer, false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAccountPartitionRootOrgScopeSet(base.CurrentOrganizationId.PartitionId), 533, "PrepareSessionsForTenant", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\SetupTaskBase.cs");
        }
Ejemplo n.º 6
0
 protected override void InternalProcessRecord()
 {
     TaskLogger.LogEnter();
     base.InternalProcessRecord();
     if (!base.HasErrors && base.InternalIsSharedConfigServicePlan && this.tenantCU.SupportedSharedConfigurations.Count != 0)
     {
         IConfigurationSession configurationSession = base.CreateTenantSession(this.tenantCU.OrganizationId, false, ConsistencyMode.PartiallyConsistent);
         this.tenantCU = configurationSession.Read <ExchangeConfigurationUnit>(this.tenantCU.Id);
         ITenantConfigurationSession          tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAllTenantsObjectId(this.tenantCU.Id), 134, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\CompleteOrganizationUpgradeTask.cs");
         Result <ExchangeConfigurationUnit>[] array = tenantConfigurationSession.ReadMultiple <ExchangeConfigurationUnit>(this.tenantCU.SupportedSharedConfigurations.ToArray());
         ServerVersion serverVersion = new ServerVersion(ServerVersion.InstalledVersion.Major, ServerVersion.InstalledVersion.Minor, ServerVersion.InstalledVersion.Build, 0);
         bool          flag          = false;
         foreach (Result <ExchangeConfigurationUnit> result in array)
         {
             if (result.Data != null)
             {
                 ExchangeConfigurationUnit data           = result.Data;
                 ServerVersion             serverVersion2 = new ServerVersion(data.SharedConfigurationInfo.CurrentVersion.Major, data.SharedConfigurationInfo.CurrentVersion.Minor, data.SharedConfigurationInfo.CurrentVersion.Build, 0);
                 if (serverVersion2.Major < serverVersion.Major || (ServerVersion.Compare(serverVersion2, serverVersion) < 0 && this.tenantCU.SupportedSharedConfigurations.Count > 1 && !this.TryGetServerForRoleAndVersion(ServerRole.Mailbox, serverVersion2)))
                 {
                     this.tenantCU.SupportedSharedConfigurations.Remove(data.Id);
                     flag = true;
                 }
             }
         }
         if (flag)
         {
             configurationSession.Save(this.tenantCU);
         }
     }
     TaskLogger.LogExit();
 }
        internal static int GetMailboxCount(ExchangeUpgradeBucket bucket)
        {
            int num = 0;
            List <ADObjectId> list = new List <ADObjectId>(bucket.Organizations.Count);

            foreach (ADObjectId adobjectId in bucket.Organizations)
            {
                int?mailboxCountFromCache = UpgradeBucketTaskHelper.MailboxCountCache.GetMailboxCountFromCache(adobjectId);
                if (mailboxCountFromCache != null)
                {
                    num += mailboxCountFromCache.Value;
                }
                else
                {
                    ADObjectIdResolutionHelper.ResolveDN(adobjectId);
                }
            }
            list.Sort((ADObjectId x, ADObjectId y) => x.PartitionGuid.CompareTo(y.PartitionGuid));
            ADObjectId adobjectId2 = null;
            ITenantConfigurationSession tenantConfigurationSession = null;

            foreach (ADObjectId adobjectId3 in list)
            {
                if (adobjectId2 == null || !adobjectId2.PartitionGuid.Equals(adobjectId3.PartitionGuid))
                {
                    tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAllTenantsObjectId(adobjectId3), 59, "GetMailboxCount", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\UpgradeBucketTaskHelper.cs");
                }
                ExchangeConfigurationUnit exchangeConfigurationUnit = tenantConfigurationSession.Read <ExchangeConfigurationUnit>(adobjectId3);
                if (exchangeConfigurationUnit != null)
                {
                    int mailboxCount = UpgradeBucketTaskHelper.MailboxCountCache.GetMailboxCount(exchangeConfigurationUnit.OrganizationId, tenantConfigurationSession);
                    num += mailboxCount;
                }
                adobjectId2 = adobjectId3;
            }
            return(num);
        }
 protected override void InternalBeginProcessing()
 {
     TaskLogger.LogEnter();
     base.InternalBeginProcessing();
     if (this.User == null || this.User.Length != 2 || this.User[0] == null || this.User[1] == null || !this.User[0].PartitionGuid.Equals(this.User[1].PartitionGuid))
     {
         base.WriteError(new TaskException(Strings.ErrorSelectUserCmdletOnlyWorksForTwoUsers), ExchangeErrorCategory.Client, null);
     }
     this.recipientSession = DirectorySessionFactory.Default.CreateTenantRecipientSession(true, ConsistencyMode.IgnoreInvalid, ADSessionSettings.FromAllTenantsObjectId(this.User[0]), 70, "InternalBeginProcessing", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\RecipientTasks\\common\\SelectUserForReconciliation.cs");
     TaskLogger.LogExit();
 }
 protected override void InternalBeginProcessing()
 {
     TaskLogger.LogEnter();
     base.InternalBeginProcessing();
     this.configurationSession.DomainController       = this.organization.OriginatingServer;
     this.orgDomainRecipientSession                   = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(this.organization.OriginatingServer, false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAllTenantsObjectId(this.organization.Id), 126, "InternalBeginProcessing", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\InitializeTenantUniversalGroups.cs");
     this.domainConfigurationSession.DomainController = this.organization.OriginatingServer;
     this.rootDomain = null;
     this.rootDomainRecipientSession = null;
     this.configurationUnit          = this.configurationSession.Read <ExchangeConfigurationUnit>(this.organization.ConfigurationUnit);
     if (this.configurationUnit == null)
     {
         base.ThrowTerminatingError(new ArgumentException(Strings.ErrorOrganizationNotFound(this.organization.ConfigurationUnit.ToString())), ErrorCategory.InvalidData, null);
     }
     base.LogReadObject(this.configurationUnit);
     TaskLogger.LogExit();
 }
        protected override void InternalValidate()
        {
            TaskLogger.LogEnter();
            base.InternalValidate();
            Exception ex = null;

            try
            {
                if (string.IsNullOrEmpty(this.tenantCU.ServicePlan))
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorServicePlanIsNotSet), (ErrorCategory)1002, null);
                }
                if (ServicePlanConfiguration.IsDeprecatedServicePlan(this.tenantCU.ServicePlan))
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorServicePlanIsDeprecated(this.tenantCU.Name, this.tenantCU.ServicePlan, this.tenantCU.ProgramId)), (ErrorCategory)1002, null);
                }
                this.servicePlanSettings = ServicePlanConfiguration.GetInstance().GetServicePlanSettings(this.tenantCU.ServicePlan);
                base.InternalLocalStaticConfigEnabled      = !this.servicePlanSettings.Organization.AdvancedHydrateableObjectsSharedEnabled;
                base.InternalLocalHydrateableConfigEnabled = !this.servicePlanSettings.Organization.CommonHydrateableObjectsSharedEnabled;
            }
            catch (ArgumentException ex2)
            {
                ex = ex2;
            }
            catch (IOException ex3)
            {
                ex = ex3;
            }
            if (ex != null)
            {
                base.WriteError(ex, (ErrorCategory)1000, null);
            }
            if (!string.IsNullOrEmpty(this.tenantCU.TargetServicePlan))
            {
                string value = ServicePlanConfiguration.GetInstance().ResolveServicePlanName(this.tenantCU.ProgramId, this.TargetOfferId);
                if (!this.tenantCU.TargetServicePlan.Equals(value, StringComparison.OrdinalIgnoreCase))
                {
                    base.WriteError(new InvalidOperationException(Strings.ErrorOOBUpgradeInProgress(this.tenantCU.ServicePlan, this.tenantCU.TargetServicePlan)), (ErrorCategory)1002, null);
                }
            }
            base.InternalIsSharedConfigServicePlan = ServicePlanConfiguration.GetInstance().IsSharedConfigurationAllowedForServicePlan(this.tenantCU.ProgramId, this.tenantCU.OfferId);
            if (base.InternalIsSharedConfigServicePlan)
            {
                if (this.tenantCU.SharedConfigurationInfo == null)
                {
                    ITenantConfigurationSession          tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAllTenantsObjectId(this.tenantCU.Id), 210, "InternalValidate", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\StartOrganizationUpgradeTask.cs");
                    Result <ExchangeConfigurationUnit>[] array = tenantConfigurationSession.ReadMultiple <ExchangeConfigurationUnit>(this.tenantCU.SupportedSharedConfigurations.ToArray());
                    string offerId;
                    if (!ServicePlanConfiguration.GetInstance().TryGetHydratedOfferId(this.tenantCU.ProgramId, this.tenantCU.OfferId, out offerId))
                    {
                        offerId = this.tenantCU.OfferId;
                    }
                    SharedConfigurationInfo sharedConfigurationInfo = SharedConfigurationInfo.FromInstalledVersion(this.tenantCU.ProgramId, offerId);
                    foreach (Result <ExchangeConfigurationUnit> result in array)
                    {
                        if (result.Data != null)
                        {
                            ExchangeConfigurationUnit data = result.Data;
                            if (data.SharedConfigurationInfo.Equals(sharedConfigurationInfo))
                            {
                                base.InternalSharedConfigurationId = data.OrganizationId;
                                break;
                            }
                        }
                    }
                    if (base.InternalSharedConfigurationId == null)
                    {
                        base.InternalSharedConfigurationId = SharedConfiguration.FindOneSharedConfigurationId(sharedConfigurationInfo, base.CurrentOrganizationId.PartitionId);
                    }
                    if (base.InternalSharedConfigurationId == null)
                    {
                        base.WriteError(new SharedConfigurationValidationException(Strings.ErrorSharedConfigurationNotFound(this.tenantCU.ProgramId, offerId, sharedConfigurationInfo.CurrentVersion.ToString())), ExchangeErrorCategory.Client, null);
                    }
                }
                else
                {
                    base.WriteError(new SharedConfigurationValidationException(Strings.ErrorSharedConfigurationUpgradeNotSupported), ExchangeErrorCategory.Client, null);
                }
            }
            Exception ex4 = Utils.ValidateTransportRuleRegexesForMigratingTenants(this.tenantCU.OrganizationId);

            if (ex4 != null)
            {
                base.WriteError(new SharedConfigurationValidationException(Strings.ErrorE14TenantRulesNeedUpdateBeforeMigratingToE15(ex4.Message)), ExchangeErrorCategory.Client, null);
            }
            TaskLogger.LogExit();
        }
Ejemplo n.º 11
0
 protected override IConfigDataProvider CreateSession()
 {
     base.CreateSession();
     return(DirectorySessionFactory.Default.CreateTenantConfigurationSession(base.DomainController, false, ConsistencyMode.PartiallyConsistent, null, ADSessionSettings.FromAllTenantsObjectId(this.GetBaseContainer()), 194, "CreateSession", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\InstallTenantConfigurationContainerTask.cs"));
 }
        protected override void InternalBeginProcessing()
        {
            TaskLogger.LogEnter();
            base.InternalBeginProcessing();
            if (Datacenter.IsMultiTenancyEnabled())
            {
                this.isMultiTenancy = true;
            }
            else
            {
                this.isMultiTenancy = false;
            }
            this.exs = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.ExSWkGuid);
            if (this.exs == null)
            {
                base.ThrowTerminatingError(new ExSGroupNotFoundException(WellKnownGuid.ExSWkGuid), ErrorCategory.InvalidData, null);
            }
            base.LogReadObject(this.exs);
            this.eoa = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.EoaWkGuid);
            if (this.eoa == null)
            {
                base.ThrowTerminatingError(new ExOrgAdminSGroupNotFoundException(WellKnownGuid.EoaWkGuid), ErrorCategory.InvalidData, null);
            }
            base.LogReadObject(this.eoa);
            this.era = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.EraWkGuid);
            if (this.era == null)
            {
                base.ThrowTerminatingError(new ExOrgReadAdminSGroupNotFoundException(WellKnownGuid.EraWkGuid), ErrorCategory.InvalidData, null);
            }
            base.LogReadObject(this.eoa);
            this.mas = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.MaSWkGuid);
            if (this.mas == null)
            {
                base.ThrowTerminatingError(new ExOrgReadAdminSGroupNotFoundException(WellKnownGuid.MaSWkGuid), ErrorCategory.InvalidData, null);
            }
            base.LogReadObject(this.mas);
            this.epa = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.EpaWkGuid);
            if (this.epa != null)
            {
                base.LogReadObject(this.epa);
            }
            this.ets = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.EtsWkGuid);
            if (this.ets == null)
            {
                base.ThrowTerminatingError(new ExTrustedSubsystemGroupNotFoundException(WellKnownGuid.EtsWkGuid), ErrorCategory.InvalidData, null);
            }
            base.LogReadObject(this.ets);
            this.delegatedSetupRG = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.RgDelegatedSetupWkGuid);
            DelegatedSetupRoleGroupValueEnum delegatedSetupRoleGroupValue = VariantConfiguration.InvariantNoFlightingSnapshot.AD.DelegatedSetupRoleGroupValue.DelegatedSetupRoleGroupValue;

            if (delegatedSetupRoleGroupValue == DelegatedSetupRoleGroupValueEnum.NotExists || Datacenter.IsForefrontForOfficeDatacenter())
            {
                if (this.delegatedSetupRG != null)
                {
                    base.ThrowTerminatingError(new ExRbacRoleGroupInMultiTenantException(WellKnownGuid.RgDelegatedSetupWkGuid, "Delegated Setup"), ErrorCategory.InvalidData, null);
                }
            }
            else if (delegatedSetupRoleGroupValue == DelegatedSetupRoleGroupValueEnum.Exists)
            {
                if (this.delegatedSetupRG == null)
                {
                    base.ThrowTerminatingError(new ExRbacRoleGroupNotFoundException(WellKnownGuid.RgDelegatedSetupWkGuid, "Delegated Setup"), ErrorCategory.InvalidData, null);
                }
                base.LogReadObject(this.delegatedSetupRG);
            }
            this.autodiscoverContainer = this.ReadCriticalObjectFromRootOrg <ADContainer>(((ITopologyConfigurationSession)this.configurationSession).GetAutoDiscoverGlobalContainerId());
            this.orgContainer          = this.configurationSession.GetOrgContainer();
            base.LogReadObject(this.orgContainer);
            if (Datacenter.IsMultiTenancyEnabled())
            {
                ADObjectId configurationUnitsRootForLocalForest        = ADSession.GetConfigurationUnitsRootForLocalForest();
                ITenantConfigurationSession tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(false, ConsistencyMode.PartiallyConsistent, ADSessionSettings.FromAllTenantsObjectId(configurationUnitsRootForLocalForest), 1413, "InternalBeginProcessing", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\DirectorySetup\\InitializeExchangeConfigContainer.cs");
                this.confUnitsContainer = tenantConfigurationSession.Read <Container>(configurationUnitsRootForLocalForest);
                if (this.confUnitsContainer != null)
                {
                    base.LogReadObject(this.confUnitsContainer);
                }
            }
            this.addressingContainer = this.ReadCriticalObject <Container>(this.orgContainer.Id.GetChildId("Addressing"));
            this.meServicesContainer = this.configurationSession.GetExchangeConfigurationContainer();
            base.LogReadObject(this.meServicesContainer);
            ADObjectId childId = this.orgContainer.Id.GetChildId("Address Lists Container");

            this.addressListsContainer        = this.ReadCriticalObject <Container>(childId);
            this.offlineAddressListsContainer = this.ReadCriticalObject <Container>(childId.GetChildId("Offline Address Lists"));
            this.recipPoliciesContainer       = this.ReadCriticalObject <RecipientPoliciesContainer>(this.orgContainer.Id.GetChildId("Recipient Policies"));
            this.sitesContainer      = this.ReadCriticalObject <SitesContainer>(this.configurationSession.ConfigurationNamingContext.GetChildId("Sites"));
            this.administrativeGroup = ((ITopologyConfigurationSession)this.configurationSession).GetAdministrativeGroup();
            base.LogReadObject(this.administrativeGroup);
            this.arraysContainer = this.ReadCriticalObject <Container>(ClientAccessArray.GetParentContainer((ITopologyConfigurationSession)this.configurationSession));
            TaskLogger.LogExit();
        }