internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) { TaskLogger.LogEnter(); notFoundReason = null; IEnumerable <T> result = new List <T>(); if (typeof(Database).IsAssignableFrom(typeof(T)) && !string.IsNullOrEmpty(base.RawIdentity)) { LegacyDN legacyDN = null; if (LegacyDN.TryParse(base.RawIdentity, out legacyDN)) { QueryFilter filter = new ComparisonFilter(ComparisonOperator.Equal, DatabaseSchema.ExchangeLegacyDN, base.RawIdentity); result = base.PerformPrimarySearch <T>(filter, rootId, session, true, optionalData); } } else { result = base.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason); } TaskLogger.LogExit(); return(result); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(new object[] { this.Identity }); if (this.Identity != null && this.InternalIgnoreDefaultScope) { ADObjectId adobjectId; if (!RecipientTaskHelper.IsValidDistinguishedName(this.Identity, out adobjectId)) { base.WriteError(new ArgumentException(Strings.ErrorOnlyDNSupportedWithIgnoreDefaultScope), (ErrorCategory)1000, this.Identity); } IConfigurable dataObject = RecipientTaskHelper.ResolveDataObject <TDataObject>(base.DataSession, null, base.ServerSettings, this.Identity, this.RootId, base.OptionalIdentityData, base.DomainController, new DataAccessHelper.CategorizedGetDataObjectDelegate(base.GetDataObject <TDataObject>), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerDelegate(base.WriteError)); this.WriteResult(dataObject); } else { base.InternalProcessRecord(); } TaskLogger.LogExit(); }
// Token: 0x06000596 RID: 1430 RVA: 0x00015494 File Offset: 0x00013694 protected override void InternalProcessRecord() { TaskLogger.LogEnter(); if (!this.IsObjectStateChanged()) { bool flag = false; if (!base.TryGetVariableValue <bool>("ExchangeDisableNotChangedWarning", out flag) || !flag) { TDataObject dataObject = this.DataObject; if (dataObject.Identity != null) { TDataObject dataObject2 = this.DataObject; this.WriteWarning(Strings.WarningForceMessageWithId(dataObject2.Identity.ToString())); } else { this.WriteWarning(Strings.WarningForceMessage); } } } base.InternalProcessRecord(); TaskLogger.LogExit(); }
protected override void InternalProcessRecord() { TaskLogger.LogEnter(new object[] { this.DataObject }); try { base.Validate(this.DataObject); if (base.HasErrors) { return; } TDataObject dataObject = this.DataObject; if (dataObject.Identity != null) { base.WriteVerbose(TaskVerboseStringHelper.GetSaveObjectVerboseString(this.DataObject, base.DataSession, typeof(TDataObject))); } using (TaskPerformanceData.SaveResult.StartRequestTimer()) { base.DataSession.Save(this.DataObject); } } catch (DataSourceTransientException exception) { base.WriteError(exception, (ErrorCategory)1002, null); } finally { TDataObject dataObject2 = this.DataObject; if (dataObject2.Identity != null) { base.WriteVerbose(TaskVerboseStringHelper.GetSourceVerboseString(base.DataSession)); } } TaskLogger.LogExit(); }
protected override IConfigurable PrepareDataObject() { TaskLogger.LogEnter(); TDataObject tdataObject = (TDataObject)((object)base.PrepareDataObject()); if (this.TemplateInstance != null) { TDataObject tdataObject2 = Activator.CreateInstance <TDataObject>(); this.InitializeDataObject(tdataObject2); tdataObject2.ProvisionalClone(new PSObjectWrapper(this.TemplateInstance)); tdataObject2.CopyChangesFrom(tdataObject); tdataObject = tdataObject2; } if (base.CurrentOrganizationId != null) { tdataObject.OrganizationId = base.CurrentOrganizationId; } else { tdataObject.OrganizationId = base.ExecutingUserOrganizationId; } TaskLogger.LogExit(); return(tdataObject); }
internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) { TaskLogger.LogEnter(); if (!typeof(ADRecipient).IsAssignableFrom(typeof(T)) && !typeof(ReducedRecipient).IsAssignableFrom(typeof(T))) { throw new ArgumentException(Strings.ErrorInvalidType(typeof(T).Name), "type"); } if (Globals.IsConsumerOrganization(session.SessionSettings.CurrentOrganizationId) && ADSessionFactory.UseAggregateSession(session.SessionSettings)) { return(ConsumerMailboxIdParameter.Parse(base.RawIdentity).GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason)); } EnumerableWrapper <T> enumerableWrapper = EnumerableWrapper <T> .GetWrapper(base.GetObjects <T>(rootId, session, subTreeSession, optionalData, out notFoundReason)); if (!enumerableWrapper.HasElements() && session is IRecipientSession) { enumerableWrapper = base.GetEnumerableWrapper <T>(enumerableWrapper, this.GetObjectsByAccountName <T>(base.RawIdentity, rootId, (IRecipientSession)session, optionalData)); } if (enumerableWrapper.HasUnfilteredElements() && !enumerableWrapper.HasElements()) { notFoundReason = new LocalizedString?(this.GetErrorMessageForWrongType(this.ToString())); } TaskLogger.LogExit(); return(enumerableWrapper); }
// Token: 0x06000AFC RID: 2812 RVA: 0x00023724 File Offset: 0x00021924 internal override IEnumerable <T> GetObjects <T>(ADObjectId rootId, IDirectorySession session, IDirectorySession subTreeSession, OptionalIdentityData optionalData, out LocalizedString?notFoundReason) { TaskLogger.LogEnter(); if (session == null) { throw new ArgumentNullException("session"); } if (!(session is IConfigurationSession)) { throw new ArgumentException(Strings.ErrorInvalidType(session.GetType().Name), "session"); } if (((typeof(T) == typeof(ADOrganizationalUnit) && session.UseConfigNC) || (typeof(T) == typeof(ExchangeConfigurationUnit) && !session.UseConfigNC)) && !Environment.StackTrace.Contains("Microsoft.Exchange.Management.Deployment.OrganizationTaskHelper.GetExchangeConfigUnitFromOrganizationId")) { throw new ArgumentException("Session is using the wrong Naming Context for the desired search"); } notFoundReason = null; EnumerableWrapper <T> result = EnumerableWrapper <T> .Empty; if (base.IsMultitenancyEnabled()) { if (this.IsWildcardDefined(base.RawIdentity)) { if (null == this.AccountPartition) { notFoundReason = new LocalizedString?(Strings.ErrorOrganizationWildcard); return(result); } IEnumerable <ExchangeConfigurationUnit> configurationUnits = this.GetConfigurationUnits((IConfigurationSession)session, base.RawIdentity); return(EnumerableWrapper <T> .GetWrapper((IEnumerable <T>) configurationUnits, this.GetEnumerableFilter <T>())); } else { OrganizationId organizationId = this.ResolveOrganizationId(session.SessionSettings.CurrentOrganizationId); if (!OrganizationId.ForestWideOrgId.Equals(organizationId)) { ADSessionSettings adsessionSettings = ADSessionSettings.FromCustomScopeSet(ScopeSet.ResolveUnderScope(organizationId, session.SessionSettings.ScopeSet), session.SessionSettings.RootOrgId, organizationId, session.SessionSettings.ExecutingUserOrganizationId, true); adsessionSettings.TenantConsistencyMode = TenantConsistencyMode.IncludeRetiredTenants; bool flag = TaskHelper.ShouldPassDomainControllerToSession(session.DomainController, adsessionSettings); ITenantConfigurationSession tenantConfigurationSession = DirectorySessionFactory.Default.CreateTenantConfigurationSession(flag ? session.DomainController : null, session.ReadOnly, session.ConsistencyMode, flag ? session.NetworkCredential : null, adsessionSettings, 314, "GetObjects", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\IdentityParameter\\organizationidparameter.cs"); tenantConfigurationSession.UseConfigNC = session.UseConfigNC; tenantConfigurationSession.UseGlobalCatalog = session.UseGlobalCatalog; if (typeof(ExchangeConfigurationUnit) == typeof(T) && organizationId.ConfigurationUnit != null) { List <ExchangeConfigurationUnit> list = new List <ExchangeConfigurationUnit>(); ExchangeConfigurationUnit exchangeConfigurationUnit = tenantConfigurationSession.Read <ExchangeConfigurationUnit>(organizationId.ConfigurationUnit); if (exchangeConfigurationUnit != null) { list.Add(exchangeConfigurationUnit); result = EnumerableWrapper <T> .GetWrapper((IEnumerable <T>) list, this.GetEnumerableFilter <T>()); } } else if (organizationId.OrganizationalUnit != null) { List <ADOrganizationalUnit> list2 = new List <ADOrganizationalUnit>(); ADOrganizationalUnit adorganizationalUnit = tenantConfigurationSession.Read <ADOrganizationalUnit>(organizationId.OrganizationalUnit); if (adorganizationalUnit != null) { list2.Add(adorganizationalUnit); result = EnumerableWrapper <T> .GetWrapper((IEnumerable <T>) list2, this.GetEnumerableFilter <T>()); } } } } } TaskLogger.LogExit(); return(result); }
protected void Install() { TaskLogger.LogEnter(new object[] { this.Name }); Hashtable hashtable = new Hashtable(); if (!ServiceControllerUtils.IsInstalled(this.Name)) { try { TaskLogger.Trace("Installing service", new object[0]); this.serviceProcessInstaller.Install(hashtable); } catch (Win32Exception ex) { if (1072 == ex.NativeErrorCode) { Thread.Sleep(10000); hashtable = new Hashtable(); this.serviceProcessInstaller.Install(hashtable); } else { base.WriteError(new TaskWin32Exception(ex), ErrorCategory.WriteError, null); } } base.ConfigureServiceSidType(); if (this.serviceFirewallRules.Count > 0) { foreach (ExchangeFirewallRule exchangeFirewallRule in this.serviceFirewallRules) { TaskLogger.Trace("Adding Windows Firewall Rule for Service {0}", new object[] { this.Name }); exchangeFirewallRule.Add(); } } this.serviceProcessInstaller.Commit(hashtable); } else { TaskLogger.Trace("Service is already installed.", new object[0]); } if (this.Description != null) { try { using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(ManageService.serviceRegPath + this.Name, true)) { registryKey.SetValue(ManageService.descriptionSubKeyName, this.Description); } goto IL_197; } catch (SecurityException inner) { base.WriteError(new SecurityException(Strings.ErrorOpenKeyDeniedForWrite(ManageService.serviceRegPath + this.Name), inner), ErrorCategory.WriteError, null); goto IL_197; } } TaskLogger.Trace("No service description", new object[0]); IL_197: if (this.EventMessageFile != null) { RegistryKey registryKey2 = null; try { try { registryKey2 = Registry.LocalMachine.OpenSubKey(ManageService.eventLogRegPath + this.Name, true); if (registryKey2 == null) { registryKey2 = Registry.LocalMachine.CreateSubKey(ManageService.eventLogRegPath + this.Name, RegistryKeyPermissionCheck.ReadWriteSubTree); } registryKey2.SetValue(ManageService.eventMessageFileSubKeyName, this.EventMessageFile); registryKey2.SetValue(ManageService.categoryMessageFileSubKeyName, this.EventMessageFile); registryKey2.SetValue(ManageService.categoryCountSubKeyName, this.CategoryCount); registryKey2.SetValue(ManageService.typesSupportedSubKeyName, 7); } catch (SecurityException inner2) { base.WriteError(new SecurityException(Strings.ErrorOpenKeyDeniedForWrite(ManageService.serviceRegPath + this.Name), inner2), ErrorCategory.WriteError, null); } goto IL_281; } finally { if (registryKey2 != null) { registryKey2.Close(); registryKey2 = null; } } } TaskLogger.Trace("No event message file", new object[0]); IL_281: if (base.FirstFailureActionType != ServiceActionType.None) { base.ConfigureFailureActions(); base.ConfigureFailureActionsFlag(); } else { TaskLogger.Trace("No failure actions", new object[0]); } TaskLogger.LogExit(); }
protected sealed override IConfigurable PrepareDataObject() { TaskLogger.LogEnter(); TDataObject tdataObject = (TDataObject)((object)base.PrepareDataObject()); if (string.IsNullOrEmpty(tdataObject.Alias)) { using (new CmdletMonitoredScope(base.CurrentTaskContext.UniqueId, "BizLogic", "RecipientTaskHelper.GenerateUniqueAlias", LoggerHelper.CmdletPerfMonitors)) { tdataObject.Alias = RecipientTaskHelper.GenerateUniqueAlias(base.TenantGlobalCatalogSession, base.CurrentOrganizationId, base.Name, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose)); } } if (!this.GetEmailAddressPolicyEnabledDefaultValue(tdataObject)) { tdataObject.EmailAddressPolicyEnabled = false; } if (string.IsNullOrEmpty(tdataObject.DisplayName)) { tdataObject.DisplayName = tdataObject.Name; } if (base.IsProvisioningLayerAvailable) { ProvisioningLayer.UpdateAffectedIConfigurable(this, this.ConvertDataObjectToPresentationObject(tdataObject), false); } else { base.WriteError(new InvalidOperationException(Strings.ErrorNoProvisioningHandlerAvailable), (ErrorCategory)1001, null); } if (tdataObject.EmailAddresses.Count > 0) { using (new CmdletMonitoredScope(base.CurrentTaskContext.UniqueId, "BizLogic", "NewRecipientObjectTask<TDataObject>.VerifyProxyAddress", LoggerHelper.CmdletPerfMonitors)) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, tdataObject.OrganizationId, base.ExecutingUserOrganizationId, false); IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, string.IsNullOrEmpty(base.DomainController) ? null : base.NetCredential, sessionSettings, 867, "PrepareDataObject", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\NewAdObjectTask.cs"); bool flag = base.Fields["SoftDeletedObject"] != null; if (flag) { RecipientTaskHelper.StripInvalidSMTPAddress(this.ConfigurationSession, tdataObject, base.ProvisioningCache, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError)); RecipientTaskHelper.StripConflictEmailAddress(tenantOrRootOrgRecipientSession, tdataObject, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError)); } else { if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled && this.ShouldCheckAcceptedDomains()) { RecipientTaskHelper.ValidateSmtpAddress(this.ConfigurationSession, tdataObject.EmailAddresses, tdataObject, new Task.ErrorLoggerDelegate(base.WriteError), base.ProvisioningCache); } RecipientTaskHelper.ValidateEmailAddressErrorOut(tenantOrRootOrgRecipientSession, tdataObject.EmailAddresses, tdataObject, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError)); } } } if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled) { ADRecipient adrecipient = tdataObject; if ((RecipientTaskHelper.GetAcceptedRecipientTypes() & adrecipient.RecipientTypeDetails) != RecipientTypeDetails.None && string.IsNullOrEmpty(adrecipient.ExternalDirectoryObjectId)) { adrecipient.ExternalDirectoryObjectId = Guid.NewGuid().ToString("D"); } } TaskLogger.LogExit(); return(tdataObject); }
// Token: 0x060005DF RID: 1503 RVA: 0x00016563 File Offset: 0x00014763 protected override void InternalBeginProcessing() { TaskLogger.LogEnter(); base.InternalBeginProcessing(); base.CurrentOrganizationId = this.ResolveCurrentOrganization(); }
// Token: 0x060005C3 RID: 1475 RVA: 0x00015CAC File Offset: 0x00013EAC protected override void InternalProcessRecord() { TaskLogger.LogEnter(); OrganizationId currentOrganizationId = base.CurrentOrganizationId; TDataObject dataObject = this.DataObject; if (!currentOrganizationId.Equals(dataObject.OrganizationId)) { this.CurrentOrgState = new LazilyInitialized <SharedTenantConfigurationState>(delegate() { TDataObject dataObject17 = this.DataObject; return(SharedConfiguration.GetSharedConfigurationState(dataObject17.OrganizationId)); }); } ADRecipient adrecipient = this.DataObject; bool flag = adrecipient != null && adrecipient.RecipientSoftDeletedStatus > 0; if (RecipientTaskHelper.IsMailEnabledRecipientType(this.DesiredRecipientType) && !flag) { if (!base.IsProvisioningLayerAvailable) { base.WriteError(new InvalidOperationException(Strings.ErrorNoProvisioningHandlerAvailable), (ErrorCategory)1001, null); } TDataObject dataObject2 = this.DataObject; if (dataObject2.IsModified(ADRecipientSchema.EmailAddresses)) { TDataObject dataObject3 = this.DataObject; if (dataObject3.EmailAddresses.Count > 0) { if (VariantConfiguration.InvariantNoFlightingSnapshot.Global.MultiTenancy.Enabled && this.ShouldCheckAcceptedDomains()) { IDirectorySession configurationSession = this.ConfigurationSession; TDataObject dataObject4 = this.DataObject; IConfigurationSession configurationSession2 = (IConfigurationSession)TaskHelper.UnderscopeSessionToOrganization(configurationSession, dataObject4.OrganizationId, true); IConfigurationSession cfgSession = configurationSession2; TDataObject dataObject5 = this.DataObject; RecipientTaskHelper.ValidateSmtpAddress(cfgSession, dataObject5.EmailAddresses, this.DataObject, new Task.ErrorLoggerDelegate(base.WriteError), base.ProvisioningCache); } ADObjectId rootOrgContainerId = base.RootOrgContainerId; TDataObject dataObject6 = this.DataObject; ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, dataObject6.OrganizationId, base.ExecutingUserOrganizationId, false); IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, string.IsNullOrEmpty(base.DomainController) ? null : base.NetCredential, sessionSettings, 557, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\SetAdObjectTask.cs"); IRecipientSession tenantCatalogSession = tenantOrRootOrgRecipientSession; TDataObject dataObject7 = this.DataObject; RecipientTaskHelper.ValidateEmailAddressErrorOut(tenantCatalogSession, dataObject7.EmailAddresses, this.DataObject, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.ErrorLoggerReThrowDelegate(this.WriteError)); } } } TDataObject dataObject8 = this.DataObject; if (dataObject8.IsChanged(ADObjectSchema.Id)) { IDirectorySession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, base.OrgWideSessionSettings, ConfigScopes.TenantSubTree, 579, "InternalProcessRecord", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\SetAdObjectTask.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = ((IDirectorySession)base.DataSession).UseConfigNC; TDataObject dataObject9 = this.DataObject; ADObjectId parent = dataObject9.Id.Parent; ADRawEntry adrawEntry = tenantOrTopologyConfigurationSession.ReadADRawEntry(parent, new PropertyDefinition[] { ADObjectSchema.ExchangeVersion }); ExchangeObjectVersion exchangeObjectVersion = (ExchangeObjectVersion)adrawEntry[ADObjectSchema.ExchangeVersion]; TDataObject dataObject10 = this.DataObject; if (dataObject10.ExchangeVersion.IsOlderThan(exchangeObjectVersion)) { TDataObject dataObject11 = this.DataObject; string name = dataObject11.Name; TDataObject dataObject12 = this.DataObject; base.WriteError(new TaskException(Strings.ErrorParentHasNewerVersion(name, dataObject12.ExchangeVersion.ToString(), exchangeObjectVersion.ToString())), (ErrorCategory)1004, null); } } TDataObject dataObject13 = this.DataObject; if (dataObject13.RecipientType != this.DesiredRecipientType && this.DesiredRecipientType != RecipientType.Invalid) { TDataObject dataObject14 = this.DataObject; string id = dataObject14.Identity.ToString(); string oldType = this.DesiredRecipientType.ToString(); TDataObject dataObject15 = this.DataObject; Exception exception = new InvalidOperationException(Strings.ErrorSetTaskChangeRecipientType(id, oldType, dataObject15.RecipientType.ToString())); ErrorCategory category = (ErrorCategory)1000; TDataObject dataObject16 = this.DataObject; base.WriteError(exception, category, dataObject16.Identity); } base.InternalProcessRecord(); TaskLogger.LogExit(); }