Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
 // 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);
            }
        }
Esempio n. 7
0
        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);
                }
            }
        }
Esempio n. 10
0
        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;
        }
Esempio n. 11
0
 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);
        }
Esempio n. 14
0
 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;
     }
 }
Esempio n. 15
0
        public static void Create(ResellerObject reseller)
        {
            ADOrganizationalUnit org = new ADOrganizationalUnit(StaticSettings.Username, StaticSettings.Password, StaticSettings.PrimaryDC);

            try
            {
            }
            catch (Exception ex)
            {
            }
        }
Esempio n. 16
0
        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);
        }
Esempio n. 18
0
        private void Delete_OrganizationalUnit(string distinguishedName)
        {
            ADOrganizationalUnit org = null;

            try
            {
            }
            catch (Exception ex)
            {
            }
        }
Esempio n. 19
0
        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 { }
        }
Esempio n. 22
0
 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);
 }
Esempio n. 23
0
 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());
 }
Esempio n. 24
0
 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);
 }
Esempio n. 25
0
 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;
     }
 }
Esempio n. 26
0
 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);
        }