/// <summary>
        /// 创建邮箱组
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="members">可以是邮箱集合,或者是用户的SamAccountName、Name等</param>
        /// <param name="exConfig"></param>
        public static ExcuseResult NewDistributionGroup(ExchangeMailGroup entity, List <string> members, ExchangeAdminConfig exConfig)
        {
            var er      = new ExcuseResult();
            var command = new Command("New-DistributionGroup");

            command.Parameters.Add("Name", entity.Name);
            command.Parameters.Add("OrganizationalUnit", entity.OrganizationalUnit);
            if (!string.IsNullOrEmpty(entity.Alias))
            {
                command.Parameters.Add("Alias", entity.Alias);
            }

            if (!string.IsNullOrEmpty(entity.SamAccountName))
            {
                command.Parameters.Add("SamAccountName", entity.SamAccountName);
            }

            if (!string.IsNullOrEmpty(entity.Type))
            {
                command.Parameters.Add("Type", entity.Type);
            }

            if (!string.IsNullOrEmpty(entity.DomainController))
            {
                command.Parameters.Add("DomainController", entity.DomainController);
            }

            if (!string.IsNullOrEmpty(entity.DisplayName))
            {
                command.Parameters.Add("DisplayName", entity.DisplayName);
            }

            if (!string.IsNullOrEmpty(entity.Notes))
            {
                command.Parameters.Add("Notes", entity.Notes);
            }

            if (members != null && members.Count > 0)
            {
                var menbersStr = string.Join(",", members);
                command.Parameters.Add("Members", menbersStr);
            }

            try
            {
                string result = RunExchangePowerShellScript(command, exConfig);
                if (!string.IsNullOrEmpty(result) && result != "FAIL")
                {
                    return(er.SetSuccessResult());
                }

                return(er.SetFailResult());
            }
            catch (Exception ex)
            {
                return(er.SetErrorResult(ex.Message));
            }
        }
Ejemplo n.º 2
0
        public ExchangeMailGroup GetInstance(PSObject psObject)
        {
            var entity = new ExchangeMailGroup();

            if (psObject.Properties["SamAccountName"] != null)
            {
                entity.SamAccountName = psObject.Properties["SamAccountName"].Value.ToString();
            }
            else
            {
                return(null);
            }

            if (psObject.Properties["Notes"] != null)
            {
                entity.Notes = psObject.Properties["Notes"].Value.ToString();
            }

            if (psObject.Properties["Type"] != null)
            {
                entity.Type = psObject.Properties["Type"].Value.ToString();
            }

            if (psObject.Properties["DisplayName"] != null)
            {
                entity.DisplayName = psObject.Properties["DisplayName"].Value.ToString();
            }

            if (psObject.Properties["Name"] != null)
            {
                entity.Name = psObject.Properties["Name"].Value.ToString();
            }

            if (psObject.Properties["Alias"] != null)
            {
                entity.Alias = psObject.Properties["Alias"].Value.ToString();
            }

            if (psObject.Properties["OrganizationalUnit"] != null)
            {
                entity.OrganizationalUnit = psObject.Properties["OrganizationalUnit"].Value.ToString();
            }

            return(entity);
        }
        /// <summary>
        /// 启用AD邮件组,显示在exchange组中,可以首发邮件
        /// </summary>
        /// <param name="entity">组的信息</param>
        /// <param name="config"></param>
        /// <returns></returns>
        public static ExcuseResult EnableDistributionGroup(ExchangeMailGroup entity, ExchangeAdminConfig config)
        {
            ExcuseResult er      = new ExcuseResult();
            var          command = new Command("Enable-DistributionGroup");

            command.Parameters.Add("Identity", entity.Name);
            if (!string.IsNullOrEmpty(config.DomainController))
            {
                command.Parameters.Add("DomainController", config.DomainController);
            }

            if (!string.IsNullOrEmpty(entity.Alias))
            {
                command.Parameters.Add("Alias", entity.Alias);
            }

            if (!string.IsNullOrEmpty(entity.DisplayName))
            {
                command.Parameters.Add("DisplayName", entity.DisplayName);
            }

            try
            {
                string result = RunExchangePowerShellScript(command, config);
                if (!string.IsNullOrEmpty(result) && result != "FAIL")
                {
                    return(er.SetSuccessResult());
                }

                return(er.SetFailResult());
            }
            catch (Exception ex)
            {
                return(er.SetErrorResult(ex.Message));
            }
        }
        /// <summary>
        /// 获取用户组
        /// </summary>
        /// <param name="identity"></param>
        /// <param name="exConfig"></param>
        /// <returns></returns>
        public static ExchangeMailGroup GetDistributionGroup(string identity, ExchangeAdminConfig exConfig)
        {
            var command = new Command("Get-DistributionGroup");

            command.Parameters.Add("Identity", identity);
            try
            {
                IEnumerable <PSObject> menbers;
                string result = RunExchangePowerShellScript(command, exConfig, out menbers);
                if (!string.IsNullOrEmpty(result) && result != "FAIL")
                {
                    var      psObjects = menbers as IList <PSObject> ?? menbers.ToList();
                    PSObject psObject  = psObjects[0];
                    var      group     = new ExchangeMailGroup().GetInstance(psObject);
                    return(group);
                }

                return(null);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }