PSModulePath 环境属性如何组成?

2024-04-08

这个问题与我的另一篇文章有​​关 -同时使用桌面 Powershell 5.1 和 Powershell Core 6.1 https://stackoverflow.com/questions/56875328/using-both-desktop-powershell-5-1-and-powershell-core-6-1

基本上邪恶的根源是当我打开桌面 Powershell 并检查$env:PSModulePath我在那里看到 PS.Core 模块路径。

请注意:

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS C:\Users\me> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.17763.503
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.503
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1


PS C:\Users\me> $env:PSModulePath -split ';'
C:\Users\me\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\6\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
PS C:\Users\me>

Notice c:\program files\powershell\6\Modules.

现在,当我检查控制面板中的环境变量时,我看到了不同的图片:

User

System

我什至没有$PROFILE script:

PS C:\Users\me> Test-Path $PROFILE
False
PS C:\Users\me>

可以看到,控制面板中没有提及 PS.Core 6.1 模块路径,但在实际的 PSModulePath 环境变量中可以找到它。

所以,我的问题是 - PSModulePath 真正是如何组成的?

我在 Microsoft 文档中找不到它(我的意思是我确实发现它是一个环境变量,但正如人们所看到的,还有更多内容)。我一定错过了一些明显的东西。

EDIT 1

我打开 Process Explorer 并检查父进程 - explorer.exe 的环境。其 PSModulePath 是:

C:\Users\mkharitonov\Documents\PowerShell\Modules
C:\Program Files\PowerShell\Modules
c:\program files\powershell\6\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

但是杀死explorer.exe并再次运行后,我可以看到PS.Core模块路径消失了。因此重新打开 Powershell 会显示正确的模块路径。

我想当我安装 PS.Core 6.1 时,它以某种方式修改了 explorer.exe 的环境。或者是 VS Code?无论如何,重新启动资源管理器可以解决问题。

我将不得不深入研究它并向 PS.Core 或 VS Code 打开一个错误。


当 PowerShell 启动时,它会尝试set the PSModulePath env var https://github.com/PowerShell/PowerShell/blob/a96b4c040492e4e8f79ba243af6d43206fcd8791/src/System.Management.Automation/engine/Modules/ModuleIntrinsics.cs#L1348 by:

  1. 读取现有价值%PSModulePath%从主机进程
  2. 从主机应用程序的配置中读取当前用户和所有用户的默认模块路径
  3. 如果在 Windows 上,请阅读%windir%\system32还有模块文件夹
  4. 更新值$env:PSModulePath通过结合所有三个

如果你发现其中有意想不到的价值,pwsh.exe可能只是从父进程继承它并且它包含在步骤 1 中

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PSModulePath 环境属性如何组成? 的相关文章

随机推荐

  • android gradle MonkeyTalk 构建问题

    我正在使用 MonkeyTalk 来进行写入测试这个演示 https github com georgepapas android gradle monkey talk demo 我正在使用 AndroidAnnotations 2 7 1
  • gridview 中 nvarchar 附近的语法不正确

    我在更新 gridview 的列时遇到问题 当我尝试更新该字段时出现此错误 nvarchar 附近的语法不正确 必须声明标量变量 pid 这是我的一段代码
  • 使用下拉列表在 Plotly 中交互式过滤数据表

    我正在尝试制作一个交互式表格 其中通过从下拉列表中选择一个值来更改表格的值 这应该只在 Plotly 而不是 Dash 中完成 因为我需要与其他用户共享文件 例如 如果我选择通道 1 那么表格应该是 Date A item B item C
  • 以编程方式切换 UIAlert 控制器

    我正在快速创建一个注册对话框 其中包含 3 个文本字段和一个开关 并且我成功添加了三个文本字段和两个警报 下面的代码显示了相同的内容 let alertController UIAlertController title Register
  • Mendeley API - 如何使用 JavaScript SDK - 隐式流身份验证

    我希望您不会介意我提出问题 因为我不是程序员 需要 傻瓜式 解释 虽然我可以使用基本的 JavaScript 但我从未使用过 API 这就是我想做的 我在硬盘上制作了一个 HTML 页面 我最终希望将其与 PhoneGap 之类的东西打包到
  • 在 iCarouselTypeRotary 视图中隐藏背面图像

    我已将图像设置为轮播 https github com nicklockwood iCarousel 当我滚动轮播时 它会显示正面和背面的图像 我不想在后面显示图像 请帮忙 谢谢 您应该实现委托 CGFloat carousel iCaro
  • HTML 输入值更改

    我有一个 PHP 更新页面 其中显示一个包含数据库中的值的文本字段 就是这样 并且正在工作
  • 按最新回复时间排列论坛帖子

    在你喊之前ORDER BY id 情况就大不相同了 我被要求建立的论坛是一个留言板论坛 未注册的用户可以在其中回复和发帖 对帖子的回复缩进在被回复的帖子下方 当然 这都是无序列表中的 一个简短的例子 主帖 回复帖子 对回复的回复 另一个回复
  • jupyter 笔记本显示 matplotlib 错误键“text.kerning_factor”的错误消息

    import pandas as pd import numpy as np import matplotlib pyplot as plt 第 4 行的错误键 text kerning factor home samyak anacond
  • iOS UICollectionView 原型单元格大小属性被忽略

    我正在使用带有两个原型单元的 UICollectionView 原型单元具有不同的宽度并包含不同的控件 图像视图和网页视图 我肯定会为给定索引返回正确的原型单元格 所有单元格都显示正确的内容 但原型单元格大小将被忽略 而会使用集合视图的项目
  • Android App ID前缀问题

    我正在构建一个适用于 Android 的 Adob e Air 应用程序 但遇到了一个大问题 我使用旧的 Flash Air 扩展向 Android 市场发布了一个应用程序 该扩展保存了带有前缀 app 的应用程序 ID 现在我已经升级了扩
  • 可以忽略 ReactiveObject 的初始值吗?

    使用 ReactiveUI 是否可以忽略给定 ReactiveObject 的初始值 例如 我初始化了一个 ViewModel 然后我WhenAnyValue在视图模型上 我立即收到通知 该值是null为我选择的财产 是的我可以 Where
  • JVM 内存类型

    我正在做一个监控项目 我们有监控软件正在运行并从服务器重新收集指标 一切工作正常 但我们需要一些有关 JVM 内存使用情况详细信息 我们有一些具有不同内存类型的列 我们需要知道这些是什么 Heap Non Heap Usage Peak C
  • Kafka 快速入门:我需要哪些依赖项?

    我正在研究卡夫卡快速入门 http kafka apache org 07 quickstart html http kafka apache org 07 quickstart html 以及基本的消费者组示例 https cwiki a
  • NumPy 数据类型比较

    我正在比较两个不同数组的数据类型 以选择适合组合两者的一个 我很高兴发现我可以执行比较操作 但在这个过程中发现了以下奇怪的行为 In 1 numpy int16 gt numpy float32 Out 1 True In 2 numpy
  • 通话状态

    我们如何以编程方式知道我正在拨打的电话已在另一方收到 我知道电话有一些状态 如空闲 摘机和振铃 我希望收到通知 我正在拨打的电话已收到 对方已断开连接或对方无人接听 请建议 尽管 Android 电话管理器中只有三种可用状态 但很容易识别电
  • Jupyter 实验室没有打印 sklearn 模型的所有参数

    我已经使用 jupyter lab 几个月了 每次运行 sklearn 模型时 输出都是这样的 from sklearn tree import DecisionTreeClassifier clf DecisionTreeClassifi
  • HTML 选择在 Android 中不起作用

    我有一个超级基本的 HTML 选择表单字段
  • Android Studio 在 i7 处理器上使用 100% CPU 进行项目重建

    我的 Windows 7 机器配备四核 i7 处理器 当我重建项目时 平均需要 25 秒 当我启动应用程序时 平均需要 36 秒 在应用程序上传到设备之前 我的项目的 src 文件夹中有 588 个文件 其中包括我的所有 java 和 xm
  • PSModulePath 环境属性如何组成?

    这个问题与我的另一篇文章有 关 同时使用桌面 Powershell 5 1 和 Powershell Core 6 1 https stackoverflow com questions 56875328 using both deskto