/// <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)); } }
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); }