protected ADObjectId ResolveTenantIdentity(string tenantNameFromReportingDB, Guid tenantGuidFromReportingDB, ADObjectId tenantId, ref Hashtable unresolvedTenants) { if (unresolvedTenants == null) { throw new ArgumentNullException("unresolvedTenants"); } if (tenantId != null && tenantId.ObjectGuid == tenantGuidFromReportingDB) { return(tenantId); } if (unresolvedTenants.Contains(tenantGuidFromReportingDB)) { return(null); } ADObjectId result; try { this.ConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(new OrganizationIdParameter(tenantGuidFromReportingDB.ToString()), this.ConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(tenantNameFromReportingDB)), new LocalizedString?(Strings.ErrorOrganizationNotUnique(tenantNameFromReportingDB))); result = adorganizationalUnit.OrganizationId.OrganizationalUnit; } catch (ManagementObjectNotFoundException ex) { base.WriteWarning(ex.Message); unresolvedTenants.Add(tenantGuidFromReportingDB, null); result = null; } return(result); }
protected override void InternalStateReset() { TaskLogger.LogEnter(); base.InternalStateReset(); OrganizationId organizationId = null; if (OrganizationId.ForestWideOrgId.Equals(base.ExecutingUserOrganizationId)) { if (this.Identity == null) { base.WriteError(new InvalidOperationException(Strings.ErrorNeedOrgIdentity), (ErrorCategory)1000, null); } else { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 109, "InternalStateReset", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\EnableConfigCustomizations.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit oufromOrganizationId = OrganizationTaskHelper.GetOUFromOrganizationId(this.Identity, tenantOrTopologyConfigurationSession, new Task.TaskErrorLoggingDelegate(base.WriteError), true); organizationId = oufromOrganizationId.OrganizationId; } } else { organizationId = base.ExecutingUserOrganizationId; } this.orgIdParam = new OrganizationIdParameter(organizationId.OrganizationalUnit); base.LoadTenantCU(); TaskLogger.LogExit(); }
public ADOrganizationalUnit GetOUTree(DirectoryEntry rootDE) { ADOrganizationalUnit rootOU = new ADOrganizationalUnit() { Name = rootDE.Properties["name"].Value.ToString(), DN = rootDE.Properties["distinguishedName"].Value.ToString() }; // Create the root OU - ie: the one we've specified above // For each child, do the same, adding to this one's children list // Find all of this OU's child OUs DirectorySearcher ouSearch = new DirectorySearcher(rootDE, "(objectClass=organizationalUnit)", null, SearchScope.OneLevel); ouSearch.Sort = new SortOption("name", SortDirection.Ascending); foreach (SearchResult thisOU in ouSearch.FindAll()) { DirectoryEntry thisOUDE = thisOU.GetDirectoryEntry(); rootOU.AddChild(GetOUTree(thisOUDE)); } rootDE.Dispose(); return(rootOU); }
// Token: 0x06000451 RID: 1105 RVA: 0x0000F550 File Offset: 0x0000D750 internal static OrganizationId ResolveTargetOrganization(Fqdn domainController, OrganizationIdParameter organization, ADObjectId rootOrgContainerId, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId) { if (organization != null) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, currentOrganizationId, executingUserOrganizationId, false); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(domainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 183, "ResolveTargetOrganization", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\MapiTaskHelper.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = null; LocalizedString? localizedString = null; IEnumerable <ADOrganizationalUnit> objects = organization.GetObjects <ADOrganizationalUnit>(null, tenantOrTopologyConfigurationSession, null, out localizedString); using (IEnumerator <ADOrganizationalUnit> enumerator = objects.GetEnumerator()) { if (!enumerator.MoveNext()) { throw new ManagementObjectNotFoundException(Strings.ErrorOrganizationNotFound(organization.ToString())); } adorganizationalUnit = enumerator.Current; if (enumerator.MoveNext()) { throw new ManagementObjectAmbiguousException(Strings.ErrorOrganizationNotUnique(organization.ToString())); } } return(adorganizationalUnit.OrganizationId); } return(currentOrganizationId ?? executingUserOrganizationId); }
internal static ADOrganizationalUnit GetOUFromOrganizationId(OrganizationIdParameter organization, IConfigurationSession session, Task.TaskErrorLoggingDelegate errorLogger, bool reportError) { bool useConfigNC = session.UseConfigNC; ADOrganizationalUnit result = null; try { session.UseConfigNC = false; IEnumerable <ADOrganizationalUnit> objects = organization.GetObjects <ADOrganizationalUnit>(null, session); using (IEnumerator <ADOrganizationalUnit> enumerator = objects.GetEnumerator()) { if (enumerator.MoveNext()) { result = enumerator.Current; if (reportError && enumerator.MoveNext()) { errorLogger(new ManagementObjectAmbiguousException(Strings.ErrorOrganizationNotUnique(organization.ToString())), ErrorCategory.InvalidArgument, null); } } else if (reportError) { errorLogger(new ManagementObjectNotFoundException(Strings.ErrorOrganizationNotFound(organization.ToString())), ErrorCategory.InvalidArgument, null); } } } finally { session.UseConfigNC = useConfigNC; } return(result); }
private void Window_Loaded(object sender, RoutedEventArgs e) { Config = new Config(); activeDirectoryRepository = new ActiveDirectoryRepository(Config); txtUsername.Text = Config.ActiveDirectoryUsername; chkImpersonate.IsChecked = Config.UseImpersonation; chkUseLDAPS.IsChecked = Config.UseLDAPS; // Get the root directoryentry for the domain that this program is running on, so we can show the entire OU tree DirectoryEntry rootDSE = new DirectoryEntry("LDAP://RootDSE"); string rootOU_DN = rootDSE.Properties["defaultNamingContext"].Value.ToString(); txtOUDN.Text = Config.ActiveDirectoryRootOUs.ToSemicolenSeparatedString(); try { ADOrganizationalUnit allOUTree = activeDirectoryRepository.GetOUTree(rootOU_DN); TreeViewItem tree = convertToTreeViewItem(allOUTree); treeOUList.Items.Add(tree); } catch (Exception ex) { MessageBox.Show("Error loading from AD: " + ex.Message, "Error loading from AD", MessageBoxButton.OK, MessageBoxImage.Error); } }
internal static Guid?ResolveOrganizationGuid(OrganizationIdParameter organization, OrganizationId currentOrganizationId, OrganizationId executingUserOrganizationId, out Guid?tenantExternalDirectoryId) { tenantExternalDirectoryId = null; if (organization == null) { return(null); } ADObjectId rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, currentOrganizationId, executingUserOrganizationId, false); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 50, "ResolveOrganizationGuid", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\ReportingTask\\Common\\ADHelper.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = null; LocalizedString? localizedString = null; IEnumerable <ADOrganizationalUnit> objects = organization.GetObjects <ADOrganizationalUnit>(null, tenantOrTopologyConfigurationSession, null, out localizedString); using (IEnumerator <ADOrganizationalUnit> enumerator = objects.GetEnumerator()) { if (!enumerator.MoveNext()) { throw new ManagementObjectNotFoundException(Strings.ErrorOrganizationNotFound(organization.ToString())); } adorganizationalUnit = enumerator.Current; if (enumerator.MoveNext()) { throw new ManagementObjectAmbiguousException(Strings.ErrorOrganizationNotUnique(organization.ToString())); } } tenantExternalDirectoryId = new Guid?(Guid.Parse(adorganizationalUnit.OrganizationId.ToExternalDirectoryOrganizationId())); return(new Guid?(adorganizationalUnit.OrganizationId.OrganizationalUnit.ObjectGuid)); }
internal static OrganizationId ResolveOrganization(Task task, OrganizationIdParameter organization, ADObjectId rootOrgContainerId, LocalizedString cannotResolveOrganizationMessage) { if (organization != null) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, task.CurrentOrganizationId, task.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(ConsistencyMode.PartiallyConsistent, ADSessionSettings.RescopeToSubtree(sessionSettings), 371, "ResolveOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Deployment\\OrganizationTaskHelper.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit oufromOrganizationId = OrganizationTaskHelper.GetOUFromOrganizationId(organization, tenantOrTopologyConfigurationSession, new Task.TaskErrorLoggingDelegate(task.WriteError), true); if (oufromOrganizationId == null) { task.WriteError(new ArgumentException(cannotResolveOrganizationMessage), ErrorCategory.InvalidOperation, null); return(null); } return(oufromOrganizationId.OrganizationId); } else { if (task.CurrentOrganizationId == OrganizationId.ForestWideOrgId) { task.WriteError(new ArgumentException(cannotResolveOrganizationMessage), ErrorCategory.InvalidOperation, null); return(null); } return(task.CurrentOrganizationId); } }
private void CreateAndValidateRoleGroups(ADOrganizationalUnit usgContainer, RoleGroupCollection roleGroups) { foreach (RoleGroupDefinition roleGroup in roleGroups) { this.CreateRoleGroup(usgContainer, roleGroup); } WindowsPrincipal windowsPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); string name = windowsPrincipal.Identity.Name; string[] array = name.Split(new char[] { '\\' }, 2); ADRecipient adrecipient = (ADRecipient)this.recipientSession.FindByAccountName <ADRecipient>(array[0], array[1]); if (adrecipient != null) { TaskLogger.Trace("Didn't find user {0})", new object[] { name }); } ADGroup adgroup = base.ResolveExchangeGroupGuid <ADGroup>(WellKnownGuid.EoaWkGuid); if (adgroup == null) { base.WriteError(new ExOrgAdminSGroupNotFoundException(WellKnownGuid.EoaWkGuid), ErrorCategory.ObjectNotFound, null); } else if (adrecipient != null) { base.LogReadObject(adrecipient); TaskLogger.Trace("User {0} is being set as member of RoleGroup {1}", new object[] { adrecipient.DistinguishedName, adgroup.Name }); InitializeExchangeUniversalGroups.AddMember(adrecipient, this.rootDomainRecipientSession, adgroup, new WriteVerboseDelegate(base.WriteVerbose)); } foreach (RoleGroupDefinition roleGroupDefinition in roleGroups) { if (roleGroupDefinition.ADGroup == null) { roleGroupDefinition.ADGroup = base.ResolveExchangeGroupGuid <ADGroup>(roleGroupDefinition.RoleGroupGuid); if (roleGroupDefinition.ADGroup == null) { base.WriteError(roleGroupDefinition.GuidNotFoundException, ErrorCategory.ObjectNotFound, null); } base.LogReadObject(roleGroupDefinition.ADGroup); } if (roleGroupDefinition.ADGroup != null && !roleGroupDefinition.ADGroup.ManagedBy.Contains(adgroup.Id)) { roleGroupDefinition.ADGroup.ManagedBy.Add(adgroup.Id); this.rootDomainRecipientSession.Save(roleGroupDefinition.ADGroup); base.LogWriteObject(roleGroupDefinition.ADGroup); } } }
private void SetCurrentOrganizationId() { IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, base.SessionSettings, 285, "SetCurrentOrganizationId", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\E4E\\SetEncryptionConfiguration.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString())), ExchangeErrorCategory.Client); base.CurrentOrganizationId = adorganizationalUnit.OrganizationId; }
protected override void InternalBeginProcessing() { base.InternalBeginProcessing(); if (this.Organization != null) { IConfigurationSession session = RequestTaskHelper.CreateOrganizationFindingSession(base.CurrentOrganizationId, base.ExecutingUserOrganizationId); ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, session, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString()))); base.CurrentOrganizationId = adorganizationalUnit.OrganizationId; } }
protected override void ResolveCurrentOrgIdBasedOnIdentity(IIdentityParameter identity) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(null, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 107, "ResolveCurrentOrgIdBasedOnIdentity", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Relocation\\NewTenantRelocationRequest.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Identity, tenantOrTopologyConfigurationSession, null, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Identity.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Identity.ToString()))); base.SetCurrentOrganizationWithScopeSet(adorganizationalUnit.OrganizationId); }
protected static ADOrganizationalUnit GetADOrganizationalUnit(FfoTenant ffoTenant) { if (ffoTenant == null) { return(null); } ADOrganizationalUnit adorganizationalUnit = new ADOrganizationalUnit(); FfoConfigurationSession.SetTenantIds(ffoTenant, adorganizationalUnit); return(adorganizationalUnit); }
protected override void InternalBeginProcessing() { base.InternalBeginProcessing(); if (this.Organization != null) { IConfigurationSession configurationSession = this.CreateSessionToResolveConfigObjects(true); configurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, configurationSession, null, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString()))); base.CurrentOrganizationId = adorganizationalUnit.OrganizationId; } }
public static void Create(ResellerObject reseller) { ADOrganizationalUnit org = new ADOrganizationalUnit(StaticSettings.Username, StaticSettings.Password, StaticSettings.PrimaryDC); try { } catch (Exception ex) { } }
protected OrganizationId ResolveCurrentOrganization() { ADObjectId rootOrgContainerId = ADSystemConfigurationSession.GetRootOrgContainerId(base.DomainController, string.IsNullOrEmpty(base.DomainController) ? null : base.NetCredential); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 179, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Migration\\RemoveMigrationObjectTaskBase.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString()))); return(adorganizationalUnit.OrganizationId); }
private ADObjectId CreateOrganizationUnitContainer(string tenantContainerName, Guid sourceObjectGuid, Guid sourceObjectExchangeObjectId, ITenantConfigurationSession targetForestTenantSession) { ADOrganizationalUnit adorganizationalUnit = new ADOrganizationalUnit(); adorganizationalUnit.CorrelationId = sourceObjectGuid; adorganizationalUnit.ExchangeObjectId = sourceObjectExchangeObjectId; adorganizationalUnit.RelocationInProgress = true; adorganizationalUnit.SetId(targetForestTenantSession.GetHostedOrganizationsRoot().GetChildId("OU", tenantContainerName)); targetForestTenantSession.Save(adorganizationalUnit); return(adorganizationalUnit.Id); }
private void Delete_OrganizationalUnit(string distinguishedName) { ADOrganizationalUnit org = null; try { } catch (Exception ex) { } }
private OrganizationId ResolveCurrentOrganization() { ADObjectId rootOrgContainerIdForLocalForest = ADSystemConfigurationSession.GetRootOrgContainerIdForLocalForest(); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerIdForLocalForest, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 362, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\Migration\\ExportMigrationReport.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString()))); return(adorganizationalUnit.OrganizationId); }
protected override OrganizationId ResolveCurrentOrganization() { if (this.Organization != null) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 1211, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Configuration\\src\\ObjectModel\\BaseTasks\\NewAdObjectTask.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString())), ExchangeErrorCategory.Client); return(adorganizationalUnit.OrganizationId); } return(base.ResolveCurrentOrganization()); }
private void treeOUList_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e) { TreeView thisTreeView = (TreeView)sender; try { TreeViewItem selectedItem = (TreeViewItem)thisTreeView.SelectedItem; ADOrganizationalUnit selectedOU = (ADOrganizationalUnit)selectedItem.Tag; txtOUDN.Text = selectedOU.DN; } catch { } }
private void ResolveCurrentOrganization() { if (this.Organization != null) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 90, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\UnifiedPolicy\\Tasks\\RemoveCompliancePolicySyncNotification.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString())), ExchangeErrorCategory.Client); base.CurrentOrganizationId = adorganizationalUnit.OrganizationId; } Utils.ValidateNotForestWideOrganization(base.CurrentOrganizationId); }
protected override OrganizationId ResolveCurrentOrganization() { if (this.Organization != null) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, base.NetCredential, sessionSettings, ConfigScopes.TenantSubTree, 236, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\um\\GetUMMailboxpin.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString()))); return(adorganizationalUnit.OrganizationId); } return(base.ResolveCurrentOrganization()); }
private OrganizationId ResolveCurrentOrganization() { if (!object.ReferenceEquals(this.Organization, null)) { ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(base.RootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(base.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, 306, "ResolveCurrentOrganization", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\ClassificationDefinitions\\SetClassificationRuleCollection.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString()))); return(adorganizationalUnit.OrganizationId); } return(base.ExecutingUserOrganizationId); }
protected override void InternalBeginProcessing() { base.InternalBeginProcessing(); if (this.Organization != null) { ADObjectId rootOrgContainerId = ADSystemConfigurationSession.GetRootOrgContainerId(this.DomainController, null); ADSessionSettings sessionSettings = ADSessionSettings.FromOrganizationIdWithoutRbacScopes(rootOrgContainerId, base.CurrentOrganizationId, base.ExecutingUserOrganizationId, true); IConfigurationSession tenantOrTopologyConfigurationSession = DirectorySessionFactory.Default.GetTenantOrTopologyConfigurationSession(this.DomainController, true, ConsistencyMode.PartiallyConsistent, null, sessionSettings, ConfigScopes.TenantSubTree, 105, "InternalBeginProcessing", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\rms\\SetRmsTemplate.cs"); tenantOrTopologyConfigurationSession.UseConfigNC = false; ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)base.GetDataObject <ADOrganizationalUnit>(this.Organization, tenantOrTopologyConfigurationSession, null, new LocalizedString?(Strings.ErrorOrganizationNotFound(this.Organization.ToString())), new LocalizedString?(Strings.ErrorOrganizationNotUnique(this.Organization.ToString()))); base.CurrentOrganizationId = adorganizationalUnit.OrganizationId; } }
protected override void WriteResult(IConfigurable dataObject) { TaskLogger.LogEnter(); if (dataObject != null) { ADOrganizationalUnit adorganizationalUnit = (ADOrganizationalUnit)dataObject; if (adorganizationalUnit.OrganizationId.OrganizationalUnit != null && adorganizationalUnit.OrganizationId.ConfigurationUnit != null) { this.GetTenantServiceStatus(adorganizationalUnit.OrganizationId.OrganizationalUnit); } } TaskLogger.LogExit(); }
private ADGroup CreateOrMoveEWPGroup(ADGroup ewp, ADOrganizationalUnit usgContainer) { if (ewp == null) { return(this.CreateGroup(usgContainer, "Exchange Windows Permissions", 0, WellKnownGuid.EwpWkGuid, Strings.ExchangeWindowsPermissionsDescription)); } if (!ewp.Id.IsDescendantOf(usgContainer.Id)) { ewp.SetId(usgContainer.Id.GetChildId("CN", ewp.Id.Rdn.UnescapedName)); InitializeExchangeUniversalGroups.SaveGroup(this.rootDomainRecipientSession, usgContainer.Id, ewp); TaskLogger.Trace(Strings.InfoMovedGroup(ewp.DistinguishedName, ewp.Id.Parent.ToDNString(), usgContainer.Id.ToDNString())); } return(ewp); }
private ADOrganizationalUnit CreateExchangeUSGContainer(string name, IConfigurationSession session, ADObjectId domain) { ADOrganizationalUnit adorganizationalUnit = this.FindExchangeUSGContainer(name, session, domain); if (adorganizationalUnit == null) { ADOrganizationalUnit adorganizationalUnit2 = new ADOrganizationalUnit(); adorganizationalUnit2.SetId(domain.GetChildId("OU", name)); session.Save(adorganizationalUnit2); adorganizationalUnit = this.FindExchangeUSGContainer(name, session, domain); } base.LogReadObject(adorganizationalUnit); return(adorganizationalUnit); }
private void GrantWriteMembershipPermission(SecurityIdentifier sid, ADOrganizationalUnit container) { List <ActiveDirectoryAccessRule> list = new List <ActiveDirectoryAccessRule>(); List <ActiveDirectoryAccessRule> list2 = new List <ActiveDirectoryAccessRule>(); Guid schemaPropertyGuid = DirectoryCommon.GetSchemaPropertyGuid(this.configurationSession, "member"); Guid schemaClassGuid = DirectoryCommon.GetSchemaClassGuid(this.configurationSession, "group"); list2.Add(new ActiveDirectoryAccessRule(sid, ActiveDirectoryRights.WriteProperty, AccessControlType.Allow, schemaPropertyGuid, ActiveDirectorySecurityInheritance.Descendents, schemaClassGuid)); list2.Add(new ActiveDirectoryAccessRule(sid, ActiveDirectoryRights.CreateChild, AccessControlType.Allow, schemaClassGuid, ActiveDirectorySecurityInheritance.All)); list.Add(new ActiveDirectoryAccessRule(sid, ActiveDirectoryRights.DeleteChild, AccessControlType.Allow, schemaClassGuid, ActiveDirectorySecurityInheritance.All)); list2.Add(new ActiveDirectoryAccessRule(sid, ActiveDirectoryRights.Delete, AccessControlType.Allow, ActiveDirectorySecurityInheritance.Descendents, schemaClassGuid)); DirectoryCommon.RemoveAces(new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), null, null, container, list.ToArray()); DirectoryCommon.SetAces(new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), null, container, list2.ToArray()); }
private OrganizationId ResolveCurrentOrganization() { base.Session = this.CreateSession(); if (!OrganizationTaskHelper.CanProceedWithOrganizationTask(this.Organization, base.Session, AddSecondaryDomainTask.IgnorableFlagsOnStatusTimeout, new Task.TaskErrorLoggingDelegate(base.WriteError))) { base.WriteError(new OrganizationPendingOperationException(Strings.ErrorCannotOperateOnOrgInCurrentState), ErrorCategory.InvalidOperation, null); } base.Session.UseConfigNC = false; ADOrganizationalUnit oufromOrganizationId = OrganizationTaskHelper.GetOUFromOrganizationId(this.Organization, base.Session, new Task.TaskErrorLoggingDelegate(base.WriteError), true); base.Session.UseConfigNC = true; this.TenantCU = OrganizationTaskHelper.GetExchangeConfigUnitFromOrganizationId(this.Organization, base.Session, new Task.TaskErrorLoggingDelegate(base.WriteError), true); base.Fields["TenantExternalDirectoryOrganizationId"] = this.TenantCU.ExternalDirectoryOrganizationId; return(oufromOrganizationId.OrganizationId); }