protected override void InternalProcessRecord() { base.InternalProcessRecord(); QueryFilter filter = new ComparisonFilter(ComparisonOperator.Equal, PublicFolderTreeSchema.PublicFolderTreeType, PublicFolderTreeType.Mapi); PublicFolderTree[] array = ((IConfigurationSession)base.DataSession).Find <PublicFolderTree>(null, QueryScope.SubTree, filter, null, 0); if (array == null || array.Length == 0) { PublicFolderTreeContainer publicFolderTreeContainer = this.InstallConfigurationObject <PublicFolderTreeContainer>(this.DataObject.Id.GetChildId(PublicFolderTreeContainer.DefaultName), false); this.InstallConfigurationObject <PublicFolderTree>(publicFolderTreeContainer.Id.GetChildId(PublicFolderTree.DefaultName), true); } this.InstallConfigurationObject <ServersContainer>(this.DataObject.Id.GetChildId(ServersContainer.DefaultName), false); this.InstallConfigurationObject <Container>(ClientAccessArray.GetParentContainer((ITopologyConfigurationSession)base.DataSession), false); this.InstallConfigurationObject <DatabasesContainer>(this.DataObject.Id.GetChildId(DatabasesContainer.DefaultName), false); this.InstallConfigurationObject <DatabaseAvailabilityGroupContainer>(this.DataObject.Id.GetChildId(DatabaseAvailabilityGroupContainer.DefaultName), false); AdvancedSecurityContainer advancedSecurityContainer = this.InstallConfigurationObject <AdvancedSecurityContainer>(this.DataObject.Id.GetChildId("Advanced Security"), false); Encryption encryption = new Encryption(); encryption[EncryptionSchema.LegacyExchangeDN] = string.Format("{0}/cn=Configuration/cn={1}", this.DataObject.LegacyExchangeDN, Encryption.DefaultName); this.InstallConfigurationObject <Encryption>(advancedSecurityContainer.Id.GetChildId(Encryption.DefaultName), false, encryption); this.InstallConfigurationObject <LegacyGwart>(this.DataObject.Id.GetChildId(LegacyGwart.DefaultName), false); this.InstallConfigurationObject <RoutingGroupsContainer>(this.DataObject.Id.GetChildId(RoutingGroupsContainer.DefaultName), false); this.InstallConfigurationObject <RoutingGroup>(this.DataObject.Id.GetChildId(RoutingGroupsContainer.DefaultName).GetChildId(RoutingGroup.DefaultName), false); this.InstallConfigurationObject <ConnectorsContainer>(this.DataObject.Id.GetChildId(RoutingGroupsContainer.DefaultName).GetChildId(RoutingGroup.DefaultName).GetChildId("Connections"), false); }
public static ADClientAccessArrayWrapper CreateWrapper(ClientAccessArray caArray) { if (caArray == null) { return(null); } return(new ADClientAccessArrayWrapper(caArray)); }
internal static void UpdateHttpProxyPerArrayCounters() { ClientAccessArray localServerClientAccessArray = Server.GetLocalServerClientAccessArray(); if (localServerClientAccessArray == null) { PerfCounters.ResetHttpProxyPerArrayCounters(null); return; } HttpProxyPerArrayCountersInstance instance = HttpProxyPerArrayCounters.GetInstance(localServerClientAccessArray.Name); if (instance != null) { PerfCounters.ResetHttpProxyPerArrayCounters(localServerClientAccessArray.Name); instance.TotalServersInArray.RawValue = (long)Math.Max(1, localServerClientAccessArray.ServerCount); } }
private ClientAccessArray GetClientAccessArrayFromIdParameter() { if (this.Array == null) { return(null); } IEnumerable <ClientAccessArray> objects = this.Array.GetObjects <ClientAccessArray>(null, base.DataSession); ClientAccessArray result; using (IEnumerator <ClientAccessArray> enumerator = objects.GetEnumerator()) { if (!enumerator.MoveNext()) { throw new ManagementObjectNotFoundException(Strings.ErrorClientAccessArrayNotFound(this.Array.ToString())); } ClientAccessArray clientAccessArray = enumerator.Current; if (enumerator.MoveNext()) { throw new ManagementObjectAmbiguousException(Strings.ErrorClientAccessArrayNotUnique(this.Array.ToString())); } result = clientAccessArray; } return(result); }
internal void VerifyArrayUniqueness(IConfigDataProvider session, ClientAccessArray array) { this.CheckUnique(session, array.Id, new Func <IConfigDataProvider, QueryFilter, bool>(this.ServerOrArrayExists), ADObjectSchema.Name, array.Name, Strings.ErrorCasArrayOrServerAlreadyExists(array.Name)); }
// Token: 0x060008BB RID: 2235 RVA: 0x0001EBC9 File Offset: 0x0001CDC9 public ClientAccessArrayIdParameter(ClientAccessArray clientAccessArray) : this(clientAccessArray.Id) { }
public ClientAccessServerOrArrayIdParameter(ClientAccessArray caArray) : this(caArray.Id) { }
private ADClientAccessArrayWrapper(ClientAccessArray caArray) : base(caArray) { this.ExchangeLegacyDN = (string)caArray[ClientAccessArraySchema.ExchangeLegacyDN]; }
protected sealed override void InternalProcessRecord() { TaskLogger.LogEnter(new object[] { this.DataObject }); if (this.DataObject.MajorVersion != LocalServer.GetServer().MajorVersion) { base.WriteError(new CannotModifyCrossVersionObjectException(this.DataObject.Id.DistinguishedName), ErrorCategory.InvalidOperation, null); return; } ClientAccessServer clientAccessServer = new ClientAccessServer(this.DataObject); if (base.Fields.IsModified("ClientAccessArray")) { ClientAccessArray clientAccessArrayFromIdParameter = this.GetClientAccessArrayFromIdParameter(); if (clientAccessArrayFromIdParameter == null) { clientAccessServer.ClientAccessArray = null; } else { if (clientAccessArrayFromIdParameter.IsPriorTo15ExchangeObjectVersion) { base.WriteError(new InvalidOperationException(Strings.ErrorCannotSetToOldClientAccessArray(clientAccessArrayFromIdParameter.ExchangeVersion.ToString(), ClientAccessArray.MinimumSupportedExchangeObjectVersion.ToString())), ErrorCategory.InvalidOperation, this.Identity); return; } clientAccessServer.ClientAccessArray = (ADObjectId)clientAccessArrayFromIdParameter.Identity; } } bool flag = false; ADServiceConnectionPoint adserviceConnectionPoint = null; ADObjectId childId = clientAccessServer.Id.GetChildId("Protocols").GetChildId("Autodiscover").GetChildId(clientAccessServer.Name); if (base.Fields.IsModified("AutoDiscoverServiceInternalUri") && this.AutoDiscoverServiceInternalUri == null && base.Fields.IsModified("AutoDiscoverSiteScope") && this.AutoDiscoverSiteScope == null) { adserviceConnectionPoint = new ADServiceConnectionPoint(); adserviceConnectionPoint.SetId(childId); base.DataSession.Delete(adserviceConnectionPoint); ADObjectId parent = adserviceConnectionPoint.Id.Parent; ADContainer adcontainer = new ADContainer(); adcontainer.SetId(parent); base.DataSession.Delete(adcontainer); flag = true; } else { adserviceConnectionPoint = ((IConfigurationSession)base.DataSession).Read <ADServiceConnectionPoint>(childId); if (adserviceConnectionPoint == null) { adserviceConnectionPoint = new ADServiceConnectionPoint(); adserviceConnectionPoint.SetId(childId); if (!base.Fields.IsModified("AutoDiscoverServiceInternalUri")) { string text = ComputerInformation.DnsFullyQualifiedDomainName; if (string.IsNullOrEmpty(text)) { text = ComputerInformation.DnsPhysicalHostName; } adserviceConnectionPoint.ServiceBindingInformation.Add("https://" + text + "/Autodiscover/Autodiscover.xml"); } if (!base.Fields.IsModified("AutoDiscoverSiteScope")) { adserviceConnectionPoint.Keywords.Add("77378F46-2C66-4aa9-A6A6-3E7A48B19596"); string siteName = NativeHelpers.GetSiteName(false); if (!string.IsNullOrEmpty(siteName)) { adserviceConnectionPoint.Keywords.Add("Site=" + siteName); } } adserviceConnectionPoint.ServiceDnsName = ComputerInformation.DnsPhysicalHostName; adserviceConnectionPoint.ServiceClassName = "ms-Exchange-AutoDiscover-Service"; flag = true; } if (base.Fields.IsModified("AutoDiscoverServiceInternalUri")) { adserviceConnectionPoint.ServiceBindingInformation.Clear(); if (this.AutoDiscoverServiceInternalUri != null) { adserviceConnectionPoint.ServiceBindingInformation.Add(this.AutoDiscoverServiceInternalUri.ToString()); } flag = true; } if (base.Fields.IsModified("AutoDiscoverSiteScope")) { adserviceConnectionPoint.Keywords.Clear(); adserviceConnectionPoint.Keywords.Add("77378F46-2C66-4aa9-A6A6-3E7A48B19596"); if (this.AutoDiscoverSiteScope != null) { foreach (string str in this.AutoDiscoverSiteScope) { adserviceConnectionPoint.Keywords.Add("Site=" + str); } } flag = true; } if (flag) { ADObjectId parent2 = adserviceConnectionPoint.Id.Parent; if (((IConfigurationSession)base.DataSession).Read <ADContainer>(parent2) == null) { ADContainer adcontainer2 = new ADContainer(); adcontainer2.SetId(parent2); base.DataSession.Save(adcontainer2); } base.DataSession.Save(adserviceConnectionPoint); } } bool flag2 = false; if (this.CleanUpInvalidAlternateServiceAccountCredentials.ToBool() && this.alternateServiceAccountCredentialsToRemove.Count > 0) { foreach (AlternateServiceAccountCredential credential in this.alternateServiceAccountCredentialsToRemove) { this.alternateServiceAccountConfiguration.RemoveCredential(credential); } flag2 = true; } if (this.RemoveAlternateServiceAccountCredentials.ToBool()) { flag2 = this.alternateServiceAccountConfiguration.RemoveAllCredentials(); flag2 = true; } if (this.AlternateServiceAccountCredential != null) { for (int i = this.AlternateServiceAccountCredential.Length - 1; i >= 0; i--) { this.alternateServiceAccountConfiguration.AddCredential(this.AlternateServiceAccountCredential[i]); flag2 = true; } } if (this.DataObject.ObjectState != ObjectState.Unchanged) { base.InternalProcessRecord(); } else if (!flag && !flag2) { this.WriteWarning(Strings.WarningForceMessage); } TaskLogger.LogExit(); }
public static ADClientAccessArrayWrapper CreateWrapper(ClientAccessArray caArray) { return(ADClientAccessArrayWrapper.CreateWrapper(caArray)); }
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(); }