コード例 #1
0
        protected override void InternalProcessRecord()
        {
            base.WriteObject("Sending no op task");
            OrganizationId organizationId = (this.TenantId != null) ? GetDarTask.ResolveOrganizationId(this.TenantId) : OrganizationId.ForestWideOrgId;
            string         fqdn           = GetDarTask.ResolveServerId(base.CurrentOrganizationId).Fqdn;

            using (HostRpcClient hostRpcClient = new HostRpcClient(fqdn))
            {
                string          text    = Guid.NewGuid().ToString();
                TaskStoreObject darTask = new TaskStoreObject
                {
                    Id       = text,
                    TaskType = "Common.NoOp",
                    TenantId = organizationId.GetBytes(Encoding.UTF8)
                };
                hostRpcClient.SetDarTask(darTask);
                base.WriteObject("Task enqueued, waiting for completed status. ID:" + text);
                for (int i = 0; i < this.Retries; i++)
                {
                    TaskStoreObject[] darTask2 = hostRpcClient.GetDarTask(new DarTaskParams
                    {
                        TaskId = text
                    });
                    if (darTask2.Length > 1)
                    {
                        base.WriteError(new Exception("Unexected number of tasks returned by GetDarTask"), ErrorCategory.InvalidResult, darTask2.Length);
                        return;
                    }
                    if (darTask2.Length == 1)
                    {
                        base.WriteObject("Task state: " + darTask2[0].TaskState);
                        if (darTask2[0].TaskState == DarTaskState.Completed)
                        {
                            return;
                        }
                    }
                    else
                    {
                        base.WriteObject("No tasks found");
                    }
                    Thread.Sleep(1000);
                }
            }
            base.WriteError(new Exception("Operation timeout"), ErrorCategory.OperationTimeout, null);
        }
コード例 #2
0
 // Token: 0x060012C0 RID: 4800 RVA: 0x0004E560 File Offset: 0x0004C760
 private static string SerializeOrganizationId(OrganizationId id)
 {
     return(Convert.ToBase64String(id.GetBytes(PhotoRequestorHeader.SerializedOrganizationIdEncoding)));
 }
コード例 #3
0
        private static void Fill(ExchangeMailboxAuditBaseRecord record, MailboxSession session, MailboxAuditOperations operation, OperationResult result, LogonType logonType, bool externalAccess)
        {
            EnumValidator.ThrowIfInvalid <MailboxAuditOperations>(operation);
            EnumValidator.ThrowIfInvalid <OperationResult>(result, "result");
            EnumValidator.ThrowIfInvalid <LogonType>(logonType, "logonType");
            Util.ThrowOnNullArgument(session, "session");
            record.Operation = string.Format(CultureInfo.InvariantCulture, "{0}", new object[]
            {
                operation
            });
            record.OperationResult   = AuditRecordFactory.GetOperationResult(result);
            record.LogonType         = AuditRecordFactory.GetLogonType(logonType);
            record.ExternalAccess    = externalAccess;
            record.CreationTime      = DateTime.UtcNow;
            record.InternalLogonType = AuditRecordFactory.GetLogonType(session.LogonType);
            record.MailboxGuid       = session.MailboxOwner.MailboxInfo.MailboxGuid;
            OrganizationId organizationId = session.OrganizationId;

            record.OrganizationId   = ((organizationId == null || organizationId.OrganizationalUnit == null || organizationId.ConfigurationUnit == null) ? null : Convert.ToBase64String(organizationId.GetBytes(Encoding.UTF8)));
            record.OrganizationName = AuditRecordFactory.GetOrgNameFromOrgId(organizationId);
            record.MailboxOwnerUPN  = session.MailboxOwner.MailboxInfo.PrimarySmtpAddress.ToString();
            if (session.MailboxOwner.Sid != null)
            {
                record.MailboxOwnerSid = string.Format(CultureInfo.InvariantCulture, "{0}", new object[]
                {
                    session.MailboxOwner.Sid
                });
                if (session.MailboxOwner.MasterAccountSid != null)
                {
                    record.MailboxOwnerMasterAccountSid = string.Format(CultureInfo.InvariantCulture, "{0}", new object[]
                    {
                        session.MailboxOwner.MasterAccountSid
                    });
                }
            }
            IdentityPair userIdentityPair = AuditRecordFactory.GetUserIdentityPair(session, logonType);

            if (userIdentityPair.LogonUserSid != null)
            {
                record.LogonUserSid = string.Format(CultureInfo.InvariantCulture, "{0}", new object[]
                {
                    userIdentityPair.LogonUserSid
                });
                record.UserId = record.LogonUserSid;
            }
            else
            {
                record.UserId = session.MailboxOwner.MailboxInfo.MailboxGuid.ToString("D", CultureInfo.InvariantCulture);
            }
            if (userIdentityPair.LogonUserDisplayName != null)
            {
                record.LogonUserDisplayName = string.Format(CultureInfo.InvariantCulture, "{0}", new object[]
                {
                    userIdentityPair.LogonUserDisplayName
                });
            }
            string text = (session.RemoteClientSessionInfo == null) ? session.ClientInfoString : session.RemoteClientSessionInfo.ClientInfoString;

            if (!string.IsNullOrEmpty(text))
            {
                record.ClientInfoString = text;
            }
            record.ClientIPAddress = string.Format(CultureInfo.InvariantCulture, "{0}", new object[]
            {
                session.ClientIPAddress
            });
            if (!string.IsNullOrEmpty(session.ClientMachineName))
            {
                record.ClientMachineName = session.ClientMachineName;
            }
            if (!string.IsNullOrEmpty(session.ClientProcessName))
            {
                record.ClientProcessName = session.ClientProcessName;
            }
            if (session.ClientVersion != 0L)
            {
                record.ClientVersion = AuditRecordFactory.GetVersionString(session.ClientVersion);
            }
            record.OriginatingServer = string.Format(CultureInfo.InvariantCulture, "{0} ({1})\r\n", new object[]
            {
                AuditRecordFactory.MachineName,
                "15.00.1497.012"
            });
        }