Exemple #1
0
        private void PropagateExchangePropertyContainer()
        {
            ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication = this.ClientApplication;
            if (this.IsInnerRunspaceThrottlingEnabled && base.ExchangeRunspaceConfig != null && clientApplication == ExchangeRunspaceConfigurationSettings.ExchangeApplication.Unknown)
            {
                clientApplication = base.ExchangeRunspaceConfig.ConfigurationSettings.ClientApplication;
            }
            ADServerSettings adServerSettingsOverride = null;

            base.CurrentTaskContext.TryGetItem <ADServerSettings>("CmdletServerSettings", ref adServerSettingsOverride);
            ExchangePropertyContainer.PropagateExchangePropertyContainer(base.SessionState, this.monadConnection.RunspaceProxy, this.IsInnerRunspaceRBACEnabled, this.IsInnerRunspaceThrottlingEnabled, adServerSettingsOverride, clientApplication);
        }
 // Token: 0x060013F3 RID: 5107 RVA: 0x0004646C File Offset: 0x0004466C
 internal static string AddClientApplicationToUrl(string url, ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApp)
 {
     if (ExchangeRunspaceConfigurationSettings.regExForClientApp.IsMatch(url))
     {
         return(ExchangeRunspaceConfigurationSettings.regExForClientApp.Replace(url, clientApp.ToString()));
     }
     if (string.IsNullOrEmpty(new Uri(url).Query))
     {
         return(string.Format("{0}?clientApplication={1}", url, clientApp.ToString()));
     }
     return(url += string.Format("{0}clientApplication={1}", url.EndsWith(";") ? string.Empty : ";", clientApp.ToString()));
 }
Exemple #3
0
 public WorkloadSettings GetWorkloadSettings()
 {
     ExchangeRunspaceConfigurationSettings.ExchangeApplication exchangeApplication = ExchangeRunspaceConfigurationSettings.ExchangeApplication.Unknown;
     if (this.context.SessionState != null)
     {
         exchangeApplication = ExchangePropertyContainer.GetPropagatedClientAppId(this.context.SessionState);
     }
     if (exchangeApplication == ExchangeRunspaceConfigurationSettings.ExchangeApplication.Unknown && this.context.ExchangeRunspaceConfig != null)
     {
         exchangeApplication = this.context.ExchangeRunspaceConfig.ConfigurationSettings.ClientApplication;
     }
     return(this.GetWorkloadSettings(exchangeApplication));
 }
 // Token: 0x060013D2 RID: 5074 RVA: 0x00046180 File Offset: 0x00044380
 internal ExchangeRunspaceConfigurationSettings(Uri connectionUri, ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication, string tenantOrganization, ExchangeRunspaceConfigurationSettings.SerializationLevel serializationLevel, PSLanguageMode languageMode, ExchangeRunspaceConfigurationSettings.ProxyMethod proxyMethod, bool proxyFullSerialization, bool encodeDecodeKey, bool isProxy, ExchangeRunspaceConfigurationSettings.ExchangeUserType user, IEnumerable <KeyValuePair <string, string> > additionalConstraints)
 {
     this.clientApplication      = clientApplication;
     this.serializationLevel     = serializationLevel;
     this.tenantOrganization     = tenantOrganization;
     this.languageMode           = languageMode;
     this.originalConnectionUri  = connectionUri;
     this.proxyMethod            = proxyMethod;
     this.proxyFullSerialization = proxyFullSerialization;
     this.EncodeDecodeKey        = encodeDecodeKey;
     this.IsProxy  = isProxy;
     this.UserType = user;
     this.additionalConstraints = additionalConstraints;
 }
        // Token: 0x060013F2 RID: 5106 RVA: 0x00046384 File Offset: 0x00044584
        internal static ExchangeRunspaceConfigurationSettings CreateConfigurationSettingsFromNameValueCollection(Uri uri, NameValueCollection collection, ExchangeRunspaceConfigurationSettings.ExchangeApplication defaultApplication)
        {
            string text = collection.Get("organization");

            ExchangeRunspaceConfigurationSettings.SerializationLevel serializationLevel = ExchangeRunspaceConfigurationSettings.SerializationLevel.Partial;
            if (collection.Get("serializationLevel") != null)
            {
                Enum.TryParse <ExchangeRunspaceConfigurationSettings.SerializationLevel>(collection.Get("serializationLevel"), true, out serializationLevel);
            }
            string text2 = collection.Get("clientApplication");

            ExchangeRunspaceConfigurationSettings.ExchangeApplication exchangeApplication = defaultApplication;
            if (text2 != null)
            {
                Enum.TryParse <ExchangeRunspaceConfigurationSettings.ExchangeApplication>(text2, true, out exchangeApplication);
            }
            PSLanguageMode pslanguageMode = PSLanguageMode.NoLanguage;

            if (exchangeApplication == ExchangeRunspaceConfigurationSettings.ExchangeApplication.EMC)
            {
                pslanguageMode = PSLanguageMode.NoLanguage;
            }
            ExchangeRunspaceConfigurationSettings.ProxyMethod proxyMethod = ExchangeRunspaceConfigurationSettings.ProxyMethod.None;
            if (collection.Get("proxyMethod") != null)
            {
                Enum.TryParse <ExchangeRunspaceConfigurationSettings.ProxyMethod>(collection.Get("proxyMethod"), true, out proxyMethod);
            }
            bool flag = false;

            if (collection.Get("proxyFullSerialization") != null)
            {
                bool.TryParse(collection.Get("proxyFullSerialization"), out flag);
            }
            bool encodeDecodeKey = true;

            if (collection.Get("X-EncodeDecode-Key") != null)
            {
                bool.TryParse(collection.Get("X-EncodeDecode-Key"), out encodeDecodeKey);
            }
            bool isProxy = ExchangeRunspaceConfigurationSettings.IsCalledFromProxy(collection);

            return(new ExchangeRunspaceConfigurationSettings(uri, exchangeApplication, text, serializationLevel, pslanguageMode, proxyMethod, flag, encodeDecodeKey, isProxy));
        }
Exemple #6
0
        private WorkloadSettings GetWorkloadSettings(ExchangeRunspaceConfigurationSettings.ExchangeApplication application)
        {
            switch (application)
            {
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.PowerShell:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.EMC:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.ECP:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.EWS:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.ManagementShell:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.DebugUser:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.ReportingWebService:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.PswsClient:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.Office365Partner:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.Intune:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.CRM:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.ActiveMonitor:
            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.OSP:
                return(new WorkloadSettings(WorkloadType.PowerShell));

            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.GalSync:
                return(new WorkloadSettings(WorkloadType.PowerShellGalSync, true));

            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.ForwardSync:
                return(new WorkloadSettings(WorkloadType.PowerShellForwardSync, true));

            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.BackSync:
                return(new WorkloadSettings(WorkloadType.PowerShellBackSync, true));

            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.NonInteractivePowershell:
                return(new WorkloadSettings(WorkloadType.PowerShell, true));

            case ExchangeRunspaceConfigurationSettings.ExchangeApplication.DiscretionaryScripts:
                return(new WorkloadSettings(WorkloadType.PowerShellDiscretionaryWorkFlow, true));
            }
            return(new WorkloadSettings(WorkloadType.PowerShellLowPriorityWorkFlow, true));
        }
Exemple #7
0
        internal static void PropagateExchangePropertyContainer(ISessionState sessionState, RunspaceProxy runspace, bool propagateRBAC, bool propagateBudget, ADServerSettings adServerSettingsOverride, ExchangeRunspaceConfigurationSettings.ExchangeApplication application)
        {
            ExchangePropertyContainer propertyContainer         = ExchangePropertyContainer.GetPropertyContainer(sessionState);
            ExchangePropertyContainer exchangePropertyContainer = new ExchangePropertyContainer();

            if (propertyContainer.exchangeRunspaceConfiguration != null)
            {
                propertyContainer.exchangeRunspaceConfiguration.TryGetExecutingUserId(out exchangePropertyContainer.executingUserId);
                exchangePropertyContainer.executingUserOrganizationId = propertyContainer.exchangeRunspaceConfiguration.OrganizationId;
                if (propagateRBAC)
                {
                    exchangePropertyContainer.exchangeRunspaceConfiguration = propertyContainer.exchangeRunspaceConfiguration;
                }
                exchangePropertyContainer.propagatedClientAppId = application;
                if (propertyContainer.budget != null && propagateBudget)
                {
                    exchangePropertyContainer.budget = ExchangePropertyContainer.AcquirePowerShellBudget(propertyContainer.exchangeRunspaceConfiguration);
                }
            }
            else
            {
                exchangePropertyContainer.executingUserId             = propertyContainer.executingUserId;
                exchangePropertyContainer.executingUserOrganizationId = propertyContainer.executingUserOrganizationId;
            }
            exchangePropertyContainer.logEntries = propertyContainer.logEntries;
            exchangePropertyContainer.logEnabled = propertyContainer.logEnabled;
            if (adServerSettingsOverride == null)
            {
                exchangePropertyContainer.serverSettings = propertyContainer.serverSettings;
            }
            else
            {
                exchangePropertyContainer.serverSettings = adServerSettingsOverride;
            }
            runspace.SetVariable(ExchangePropertyContainer.ExchangePropertyContainerName, exchangePropertyContainer);
        }
        public MonadConnectionInfo(Uri server, PSCredential credentials, string shellUri, string typesFile, AuthenticationMechanism authenticationMechanism, ExchangeRunspaceConfigurationSettings.SerializationLevel serializationLevel, ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication, string clientVersion, int maxRedirectionCount, bool skipCertificateCheck) : base(server, credentials, shellUri, typesFile, authenticationMechanism, skipCertificateCheck, maxRedirectionCount)
        {
            Uri uri = server;

            if (serializationLevel != ExchangeRunspaceConfigurationSettings.SerializationLevel.Partial)
            {
                uri = MonadConnectionInfo.AppendUriProperty(uri, "serializationLevel".ToString(), serializationLevel.ToString());
            }
            if (clientApplication != ExchangeRunspaceConfigurationSettings.ExchangeApplication.Unknown)
            {
                uri = MonadConnectionInfo.AppendUriProperty(uri, "clientApplication".ToString(), clientApplication.ToString());
            }
            if (MonadConnectionInfo.exchangeClientVersion != null)
            {
                uri = MonadConnectionInfo.AppendUriProperty(uri, "ExchClientVer", MonadConnectionInfo.exchangeClientVersion);
            }
            this.serverUri          = uri;
            this.clientApplication  = clientApplication;
            this.serializationLevel = serializationLevel;
            this.clientVersion      = clientVersion;
        }
 public MonadConnectionInfo(Uri server, PSCredential credentials, string shellUri, string typesFile, AuthenticationMechanism authenticationMechanism, ExchangeRunspaceConfigurationSettings.SerializationLevel serializationLevel, ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication, string clientVersion) : this(server, credentials, shellUri, typesFile, authenticationMechanism, serializationLevel, clientApplication, clientVersion, 0, true)
 {
 }
 // Token: 0x06001230 RID: 4656 RVA: 0x000392BD File Offset: 0x000374BD
 internal static bool IsClientApplicationMonitored(ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication)
 {
     return(!ProvisioningMonitoringConfig.excludedClientApplications.Contains(clientApplication));
 }
 // Token: 0x060013D1 RID: 5073 RVA: 0x0004615C File Offset: 0x0004435C
 internal ExchangeRunspaceConfigurationSettings(Uri connectionUri, ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication, string tenantOrganization, ExchangeRunspaceConfigurationSettings.SerializationLevel serializationLevel, PSLanguageMode languageMode, ExchangeRunspaceConfigurationSettings.ProxyMethod proxyMethod, bool proxyFullSerialization, bool encodeDecodeKey, bool isProxy) : this(connectionUri, clientApplication, tenantOrganization, serializationLevel, languageMode, proxyMethod, proxyFullSerialization, encodeDecodeKey, isProxy, ExchangeRunspaceConfigurationSettings.ExchangeUserType.Unknown, null)
 {
 }
 // Token: 0x060013CF RID: 5071 RVA: 0x00046118 File Offset: 0x00044318
 internal ExchangeRunspaceConfigurationSettings(Uri connectionUri, ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication, string tenantOrganization, ExchangeRunspaceConfigurationSettings.SerializationLevel serializationLevel, PSLanguageMode languageMode, ExchangeRunspaceConfigurationSettings.ProxyMethod proxyMethod) : this(connectionUri, clientApplication, tenantOrganization, serializationLevel, languageMode, proxyMethod, false, false)
 {
 }
 // Token: 0x060013CD RID: 5069 RVA: 0x000460FB File Offset: 0x000442FB
 internal ExchangeRunspaceConfigurationSettings(ExchangeRunspaceConfigurationSettings.ExchangeApplication clientApplication, string tenantOrganization, ExchangeRunspaceConfigurationSettings.SerializationLevel serializationLevel) : this(null, clientApplication, tenantOrganization, serializationLevel, PSLanguageMode.NoLanguage)
 {
 }
        // Token: 0x060013F1 RID: 5105 RVA: 0x00046358 File Offset: 0x00044558
        internal static ExchangeRunspaceConfigurationSettings FromRequestHeaders(string connectionString, ExchangeRunspaceConfigurationSettings.ExchangeApplication defaultApplication)
        {
            Uri uri = new Uri(connectionString, UriKind.Absolute);

            return(ExchangeRunspaceConfigurationSettings.CreateConfigurationSettingsFromNameValueCollection(uri, HttpContext.Current.Request.Headers, defaultApplication));
        }
        // Token: 0x060013F0 RID: 5104 RVA: 0x00046318 File Offset: 0x00044518
        internal static ExchangeRunspaceConfigurationSettings FromUriConnectionString(string connectionString, ExchangeRunspaceConfigurationSettings.ExchangeApplication defaultApplication, out string vdirPath)
        {
            Uri uri = new Uri(connectionString, UriKind.Absolute);

            vdirPath = ExchangeRunspaceConfigurationSettings.GetVDirPathFromUriLocalPath(uri);
            if (string.IsNullOrEmpty(uri.Query))
            {
                return(ExchangeRunspaceConfigurationSettings.GetDefaultInstance());
            }
            NameValueCollection nameValueCollectionFromUri = LiveIdBasicAuthModule.GetNameValueCollectionFromUri(uri);

            return(ExchangeRunspaceConfigurationSettings.CreateConfigurationSettingsFromNameValueCollection(uri, nameValueCollectionFromUri, defaultApplication));
        }