You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何通过Install-Module安装的PowerShell模块未被Get-InstalledModule列出?

为何通过Install-Module安装的PowerShell模块未被Get-InstalledModule列出?

这个问题的核心在于Microsoft.WinGet.Client模块的特殊定位,咱们来拆解清楚:

  • 模块的安装逻辑特殊
    Microsoft.WinGet.Client并不是托管在PowerShell Gallery的普通模块,它是Windows Package Manager(也就是咱们常说的winget)的官方PowerShell客户端。当你执行Install-Module Microsoft.WinGet.Client时,这个命令并没有走PowerShellGet的常规安装流程——它本质上是调用winget自身的机制,把模块部署到了系统级路径中,而不是由PowerShellGet来管理这个模块的生命周期。

  • Get-InstalledModule的追踪范围有限
    Get-InstalledModule是PowerShellGet提供的命令,它只认那些通过PowerShellGet从PSGallery或自定义仓库安装、且被PowerShellGet记录在自身管理数据库里的模块。而Microsoft.WinGet.Client是由winget负责部署和维护的,根本没进入PowerShellGet的追踪列表,所以用这个命令自然看不到它。

  • 不同模块命令的检测逻辑差异
    这就能解释为什么Get-Module -ListAvailable能找到它——这个命令是扫描系统中所有符合PowerShell模块规范的路径(包括系统级和用户级目录),只要模块有合法的psd1清单文件,就能被它检测到。而你运行Get-WinGetVersion后模块出现在Get-Module结果里,是因为这个命令触发了模块的自动加载,PowerShell会把已加载的模块记录下来。

要是你想确认它的安装路径,可以跑这条命令:

Get-Module Microsoft.WinGet.Client -ListAvailable | Select-Object Name, Path

你会发现它的路径大概率在系统级的Program Files目录下,而不是PowerShellGet默认的用户模块目录(比如C:\Users\<你的用户名>\Documents\PowerShell\Modules)。

备注:内容来源于stack exchange,提问作者Marco Eckstein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:43:17