コード例 #1
0
        protected PowerShellResults <L> SetObject <O, U, L>(string setCmdlet, Identity identity, U properties, Identity identityForGetCmdlet) where O : L where U : SetObjectProperties
        {
            EcpPerfCounters.WebServiceSetObject.Increment();
            identity.FaultIfNull();
            properties.FaultIfNull();
            PowerShellResults <L> powerShellResults = new PowerShellResults <L>();

            properties.IgnoreNullOrEmpty = false;
            if (properties.Any <KeyValuePair <string, object> >())
            {
                powerShellResults = this.CoreInvoke <L>(new PSCommand().AddCommand(setCmdlet), identity.ToPipelineInput(), identity, properties);
            }
            if (powerShellResults.Succeeded && null != identityForGetCmdlet)
            {
                PowerShellResults <L> powerShellResults2 = null;
                if (properties.ReturnObjectType == ReturnObjectTypes.Full && this is IGetObjectService <O> )
                {
                    IGetObjectService <O> getObjectService = this as IGetObjectService <O>;
                    PowerShellResults <O> @object          = getObjectService.GetObject(identityForGetCmdlet);
                    powerShellResults2 = new PowerShellResults <L>();
                    powerShellResults2.MergeOutput(@object.Output.Cast <L>().ToArray <L>());
                    powerShellResults2.MergeErrors <O>(@object);
                }
                else if (properties.ReturnObjectType == ReturnObjectTypes.PartialForList && this is IGetObjectForListService <L> )
                {
                    IGetObjectForListService <L> getObjectForListService = this as IGetObjectForListService <L>;
                    powerShellResults2 = getObjectForListService.GetObjectForList(identityForGetCmdlet);
                }
                if (powerShellResults2 != null)
                {
                    powerShellResults.MergeAll(powerShellResults2);
                }
            }
            return(powerShellResults);
        }
コード例 #2
0
        public PowerShellResults <AdminAuditLogResultRow> GetList(AdminAuditLogSearchFilter filter, SortOptions sort)
        {
            if (filter == null)
            {
                filter = new AdminAuditLogSearchFilter();
            }
            filter.Cmdlets    = "Set-Mailbox";
            filter.Parameters = "LitigationHoldEnabled";
            if (filter != null && filter.ObjectIds != null && filter.ObjectIds.Length > 0)
            {
                SmtpAddress[] addresses = filter.ObjectIds.ToSmtpAddressArray();
                string[]      identitiesFromSmtpAddresses = AuditHelper.GetIdentitiesFromSmtpAddresses(addresses);
                if (identitiesFromSmtpAddresses.Length != 0)
                {
                    filter.ObjectIds = string.Join(",", identitiesFromSmtpAddresses);
                }
            }
            PowerShellResults <AdminAuditLogResultRow> list = base.GetList <AdminAuditLogResultRow, AdminAuditLogSearchFilter>("Search-AdminAuditLog", filter, sort);
            PowerShellResults <AdminAuditLogResultRow> powerShellResults = new PowerShellResults <AdminAuditLogResultRow>();

            if (list.Succeeded)
            {
                string a = null;
                foreach (AdminAuditLogResultRow adminAuditLogResultRow in list.Output)
                {
                    if (!string.Equals(a, adminAuditLogResultRow.ObjectModified, StringComparison.InvariantCultureIgnoreCase))
                    {
                        a = adminAuditLogResultRow.ObjectModified;
                        powerShellResults.MergeOutput(new AdminAuditLogResultRow[]
                        {
                            adminAuditLogResultRow
                        });
                    }
                }
                int num = powerShellResults.Output.Length;
                AdminAuditLogResultRow[] array = new AdminAuditLogResultRow[num];
                for (int j = 0; j < num; j++)
                {
                    Identity id = AuditHelper.CreateIdentity(powerShellResults.Output[j].ObjectModified, filter.StartDate, filter.EndDate);
                    array[j] = new AdminAuditLogResultRow(id, powerShellResults.Output[j].AuditReportSearchBaseResult);
                }
                powerShellResults.Output = array;
                return(powerShellResults);
            }
            return(list);
        }
コード例 #3
0
        public PowerShellResults <AdminAuditLogDetailRow> GetObject(Identity identity)
        {
            PowerShellResults <AdminAuditLogDetailRow> powerShellResults = new PowerShellResults <AdminAuditLogDetailRow>();

            if (identity != null && identity.RawIdentity != null)
            {
                ExternalAccessLogDetailsId externalAccessLogDetailsId = new ExternalAccessLogDetailsId(identity);
                ExternalAccessFilter       externalAccessFilter       = new ExternalAccessFilter();
                if (externalAccessLogDetailsId.StartDate != "NoStart")
                {
                    externalAccessFilter.StartDate = externalAccessLogDetailsId.StartDate;
                }
                if (externalAccessLogDetailsId.EndDate != "NoEnd")
                {
                    externalAccessFilter.EndDate = externalAccessLogDetailsId.EndDate;
                }
                externalAccessFilter.ExternalAccess = new bool?(true);
                PSCommand pscommand = new PSCommand().AddCommand("Search-AdminAuditLog").AddParameters(externalAccessFilter);
                pscommand.AddParameter("ObjectIds", externalAccessLogDetailsId.ObjectModified);
                pscommand.AddParameter("Cmdlets", externalAccessLogDetailsId.Cmdlet);
                pscommand.AddParameter("resultSize", 501);
                PowerShellResults <AdminAuditLogEvent> powerShellResults2 = base.Invoke <AdminAuditLogEvent>(pscommand);
                if (powerShellResults2.Succeeded)
                {
                    if (powerShellResults2.Output.Length == 501)
                    {
                        powerShellResults.Warnings = new string[]
                        {
                            Strings.TooManyAuditLogsInDetailsPane
                        };
                    }
                    AdminAuditLogDetailRow[] array = new AdminAuditLogDetailRow[powerShellResults2.Output.Length];
                    for (int i = 0; i < powerShellResults2.Output.Length; i++)
                    {
                        array[i] = new AdminAuditLogDetailRow(identity, powerShellResults2.Output[i]);
                    }
                    powerShellResults.MergeOutput(array);
                }
                powerShellResults.MergeErrors <AdminAuditLogEvent>(powerShellResults2);
            }
            return(powerShellResults);
        }
コード例 #4
0
        public PowerShellResults <AdminAuditLogDetailRow> GetObject(Identity identity)
        {
            PowerShellResults <AdminAuditLogDetailRow> powerShellResults = new PowerShellResults <AdminAuditLogDetailRow>();

            if (identity != null && identity.RawIdentity != null)
            {
                AuditLogDetailsId         auditLogDetailsId         = new AuditLogDetailsId(identity);
                AdminAuditLogSearchFilter adminAuditLogSearchFilter = new AdminAuditLogSearchFilter();
                adminAuditLogSearchFilter.Cmdlets    = "Set-Mailbox";
                adminAuditLogSearchFilter.Parameters = "LitigationHoldEnabled";
                if (auditLogDetailsId.StartDate != "NoStart")
                {
                    adminAuditLogSearchFilter.StartDate = auditLogDetailsId.StartDate;
                }
                if (auditLogDetailsId.EndDate != "NoEnd")
                {
                    adminAuditLogSearchFilter.EndDate = auditLogDetailsId.EndDate;
                }
                PSCommand pscommand = new PSCommand().AddCommand("Search-AdminAuditLog").AddParameters(adminAuditLogSearchFilter);
                pscommand.AddParameter("objectIds", auditLogDetailsId.Object);
                pscommand.AddParameter("resultSize", 501);
                PowerShellResults <AdminAuditLogEvent> powerShellResults2 = base.Invoke <AdminAuditLogEvent>(pscommand);
                if (powerShellResults2.Succeeded)
                {
                    if (powerShellResults2.Output.Length == 501)
                    {
                        powerShellResults.Warnings = new string[]
                        {
                            Strings.TooManyAuditLogsInDetailsPane
                        };
                    }
                    AdminAuditLogDetailRow[] array = new AdminAuditLogDetailRow[powerShellResults2.Output.Length];
                    for (int i = 0; i < powerShellResults2.Output.Length; i++)
                    {
                        array[i] = new AdminAuditLogDetailRow(identity, powerShellResults2.Output[i]);
                    }
                    powerShellResults.MergeOutput(array);
                }
                powerShellResults.MergeErrors <AdminAuditLogEvent>(powerShellResults2);
            }
            return(powerShellResults);
        }
コード例 #5
0
        public PowerShellResults <AdminAuditLogDetailRow> GetObject(Identity identity)
        {
            AuditLogDetailsId         auditLogDetailsId         = new AuditLogDetailsId(identity);
            AdminAuditLogSearchFilter adminAuditLogSearchFilter = new AdminAuditLogSearchFilter();

            adminAuditLogSearchFilter.Cmdlets = "Add-RoleGroupMember,Remove-RoleGroupMember,Update-RoleGroupMember,New-RoleGroup,Remove-RoleGroup";
            if (auditLogDetailsId.StartDate != "NoStart")
            {
                adminAuditLogSearchFilter.StartDate = auditLogDetailsId.StartDate;
            }
            if (auditLogDetailsId.EndDate != "NoEnd")
            {
                adminAuditLogSearchFilter.EndDate = auditLogDetailsId.EndDate;
            }
            adminAuditLogSearchFilter.ObjectIds = auditLogDetailsId.Object;
            PSCommand pscommand = new PSCommand().AddCommand("Search-AdminAuditLog").AddParameters(adminAuditLogSearchFilter);

            pscommand.AddParameter("resultSize", 501);
            PowerShellResults <AdminAuditLogEvent>     powerShellResults  = base.Invoke <AdminAuditLogEvent>(pscommand);
            PowerShellResults <AdminAuditLogDetailRow> powerShellResults2 = new PowerShellResults <AdminAuditLogDetailRow>();

            if (powerShellResults.Succeeded)
            {
                if (powerShellResults.Output.Length == 501)
                {
                    powerShellResults2.Warnings = new string[]
                    {
                        Strings.TooManyAuditLogsInDetailsPane
                    };
                }
                List <AdminAuditLogDetailRow> list = new List <AdminAuditLogDetailRow>();
                for (int i = 0; i < powerShellResults.Output.Length; i++)
                {
                    list.Add(new AdminAuditLogDetailRow(identity, auditLogDetailsId.Object, powerShellResults.Output[i]));
                }
                powerShellResults2.MergeOutput(list.ToArray());
                return(powerShellResults2);
            }
            powerShellResults2.MergeErrors <AdminAuditLogEvent>(powerShellResults);
            return(powerShellResults2);
        }
コード例 #6
0
        public PowerShellResults <AdminAuditLogDetailRow> GetObject(Identity identity)
        {
            PowerShellResults <AdminAuditLogDetailRow> powerShellResults = new PowerShellResults <AdminAuditLogDetailRow>();

            if (identity != null && identity.RawIdentity != null)
            {
                AuditLogDetailsId         changeId = new AuditLogDetailsId(identity);
                AdminAuditLogSearchFilter adminAuditLogSearchFilter = new AdminAuditLogSearchFilter();
                adminAuditLogSearchFilter.Cmdlets    = "New-MailboxSearch, Start-MailboxSearch, Get-MailboxSearch, Stop-MailboxSearch, Remove-MailboxSearch, Set-MailboxSearch";
                adminAuditLogSearchFilter.Parameters = "*";
                if (changeId.StartDate != "NoStart")
                {
                    adminAuditLogSearchFilter.StartDate = changeId.StartDate;
                }
                if (changeId.EndDate != "NoEnd")
                {
                    adminAuditLogSearchFilter.EndDate = changeId.EndDate;
                }
                PSCommand pscommand = new PSCommand().AddCommand("Search-AdminAuditLog").AddParameters(adminAuditLogSearchFilter);
                pscommand.AddParameter("resultSize", 501);
                PowerShellResults <AdminAuditLogEvent> powerShellResults2 = base.Invoke <AdminAuditLogEvent>(pscommand);
                if (powerShellResults2.Succeeded)
                {
                    if (powerShellResults2.Output.Length == 501)
                    {
                        powerShellResults.Warnings = new string[]
                        {
                            Strings.TooManyAuditLogsInDetailsPane
                        };
                    }
                    powerShellResults.MergeOutput((from x in powerShellResults2.Output
                                                   where x.SearchObject == changeId.Object
                                                   select new AdminAuditLogDetailRow(identity, x)).ToArray <AdminAuditLogDetailRow>());
                }
                powerShellResults.MergeErrors <AdminAuditLogEvent>(powerShellResults2);
            }
            return(powerShellResults);
        }
コード例 #7
0
        public PowerShellResults <AdminAuditLogResultRow> GetList(AdminAuditLogSearchFilter filter, SortOptions sort)
        {
            if (filter == null)
            {
                filter = new AdminAuditLogSearchFilter();
            }
            filter.Cmdlets = "Add-RoleGroupMember,Remove-RoleGroupMember,Update-RoleGroupMember,New-RoleGroup,Remove-RoleGroup";
            PowerShellResults <AdminAuditLogResultRow> list = base.GetList <AdminAuditLogResultRow, AdminAuditLogSearchFilter>("Search-AdminAuditLog", filter, sort);
            PowerShellResults <AdminAuditLogResultRow> powerShellResults = new PowerShellResults <AdminAuditLogResultRow>();

            if (list.Succeeded)
            {
                Dictionary <string, AdminAuditLogResultRow> dictionary = new Dictionary <string, AdminAuditLogResultRow>();
                foreach (AdminAuditLogResultRow adminAuditLogResultRow in list.Output)
                {
                    if (!dictionary.ContainsKey(adminAuditLogResultRow.ObjectModified.ToLower()))
                    {
                        dictionary[adminAuditLogResultRow.ObjectModified.ToLower()] = adminAuditLogResultRow;
                    }
                }
                using (Dictionary <string, AdminAuditLogResultRow> .ValueCollection.Enumerator enumerator = dictionary.Values.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        AdminAuditLogResultRow adminAuditLogResultRow2 = enumerator.Current;
                        Identity id = AuditHelper.CreateIdentity(adminAuditLogResultRow2.ObjectModified, filter.StartDate, filter.EndDate);
                        powerShellResults.MergeOutput(new AdminAuditLogResultRow[]
                        {
                            new AdminAuditLogResultRow(id, adminAuditLogResultRow2.AuditReportSearchBaseResult)
                        });
                    }
                    return(powerShellResults);
                }
            }
            powerShellResults.MergeErrors <AdminAuditLogResultRow>(list);
            return(powerShellResults);
        }
コード例 #8
0
        public PowerShellResults <NonOwnerAccessDetailRow> GetObject(Identity identity)
        {
            NonOwnerAccessDetailsId nonOwnerAccessDetailsId = new NonOwnerAccessDetailsId(identity);
            NonOwnerAccessFilter    nonOwnerAccessFilter    = new NonOwnerAccessFilter();

            if (nonOwnerAccessDetailsId.StartDate != "NoStart")
            {
                nonOwnerAccessFilter.StartDate = nonOwnerAccessDetailsId.StartDate;
            }
            if (nonOwnerAccessDetailsId.EndDate != "NoEnd")
            {
                nonOwnerAccessFilter.EndDate = nonOwnerAccessDetailsId.EndDate;
            }
            string logonTypes;

            if (!nonOwnerAccessDetailsId.LogonTypes.IsNullOrBlank() && (logonTypes = nonOwnerAccessDetailsId.LogonTypes) != null)
            {
                if (!(logonTypes == "AllNonOwners"))
                {
                    if (!(logonTypes == "OutsideUsers"))
                    {
                        if (!(logonTypes == "InternalUsers"))
                        {
                            if (logonTypes == "NonDelegateUsers")
                            {
                                nonOwnerAccessFilter.LogonTypes     = "Admin";
                                nonOwnerAccessFilter.ExternalAccess = new bool?(false);
                            }
                        }
                        else
                        {
                            nonOwnerAccessFilter.LogonTypes     = "Admin,Delegate";
                            nonOwnerAccessFilter.ExternalAccess = new bool?(false);
                        }
                    }
                    else
                    {
                        nonOwnerAccessFilter.LogonTypes     = null;
                        nonOwnerAccessFilter.ExternalAccess = new bool?(true);
                    }
                }
                else
                {
                    nonOwnerAccessFilter.LogonTypes = "Admin,Delegate";
                }
            }
            PSCommand pscommand = new PSCommand().AddCommand("Search-MailboxAuditLog").AddParameters(nonOwnerAccessFilter);

            pscommand.AddParameter("identity", nonOwnerAccessDetailsId.Object);
            pscommand.AddParameter("showDetails", true);
            pscommand.AddParameter("resultSize", 501);
            PowerShellResults <MailboxAuditLogEvent>    powerShellResults  = base.Invoke <MailboxAuditLogEvent>(pscommand);
            PowerShellResults <NonOwnerAccessDetailRow> powerShellResults2 = new PowerShellResults <NonOwnerAccessDetailRow>();

            if (powerShellResults.Succeeded)
            {
                if (powerShellResults.Output.Length == 0)
                {
                    powerShellResults2.Warnings = new string[]
                    {
                        Strings.AuditLogsDeleted
                    };
                }
                if (powerShellResults.Output.Length == 501)
                {
                    powerShellResults2.Warnings = new string[]
                    {
                        Strings.TooManyAuditLogsInDetailsPane
                    };
                }
                NonOwnerAccessDetailRow[] array = new NonOwnerAccessDetailRow[powerShellResults.Output.Length];
                for (int i = 0; i < powerShellResults.Output.Length; i++)
                {
                    array[i] = new NonOwnerAccessDetailRow(identity, powerShellResults.Output[i]);
                }
                powerShellResults2.MergeOutput(array);
                return(powerShellResults2);
            }
            powerShellResults2.MergeErrors <MailboxAuditLogEvent>(powerShellResults);
            return(powerShellResults2);
        }