/// <summary>
 /// Gets the specified module path from the appropriate Environment entry in the registry.
 /// </summary>
 /// <param name="scope"></param>
 /// <returns>The specified module path. Null if not present.</returns>
 internal override string GetModulePath(PropertyScope scope)
 {
     if (PropertyScope.CurrentUser == scope)
     {
         return(ModuleIntrinsics.GetExpandedEnvironmentVariable("PSMODULEPATH", EnvironmentVariableTarget.User));
     }
     else
     {
         return(ModuleIntrinsics.GetExpandedEnvironmentVariable("PSMODULEPATH", EnvironmentVariableTarget.Machine));
     }
 }
Пример #2
0
        internal static void SetModulePath()
        {
            string environmentVariable1 = ModuleIntrinsics.GetExpandedEnvironmentVariable("PSMODULEPATH", EnvironmentVariableTarget.Process);
            string environmentVariable2 = ModuleIntrinsics.GetExpandedEnvironmentVariable("PSMODULEPATH", EnvironmentVariableTarget.Machine);
            string environmentVariable3 = ModuleIntrinsics.GetExpandedEnvironmentVariable("PSMODULEPATH", EnvironmentVariableTarget.User);
            string str1;

            if (environmentVariable1 == null)
            {
                string str2 = (environmentVariable3 ?? ModuleIntrinsics.GetPersonalModulePath()) + (object)';';
                str1 = environmentVariable2 != null ? str2 + environmentVariable2 : str2 + ModuleIntrinsics.GetSystemwideModulePath();
            }
            else if (environmentVariable2 != null)
            {
                if (environmentVariable3 == null)
                {
                    if (!environmentVariable2.Equals(environmentVariable1, StringComparison.OrdinalIgnoreCase))
                    {
                        return;
                    }
                    str1 = ModuleIntrinsics.GetPersonalModulePath() + (object)';' + environmentVariable2;
                }
                else
                {
                    string str2 = environmentVariable3 + (object)';' + environmentVariable2;
                    if (!str2.Equals(environmentVariable1, StringComparison.OrdinalIgnoreCase) && !environmentVariable2.Equals(environmentVariable1, StringComparison.OrdinalIgnoreCase) && !environmentVariable3.Equals(environmentVariable1, StringComparison.OrdinalIgnoreCase))
                    {
                        return;
                    }
                    str1 = str2;
                }
            }
            else
            {
                if (environmentVariable3 == null || !environmentVariable3.Equals(environmentVariable1, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }
                str1 = environmentVariable3 + (object)';' + ModuleIntrinsics.GetSystemwideModulePath();
            }
            Environment.SetEnvironmentVariable("PSMODULEPATH", str1);
        }