首页/系统/Windows 运维速查/Install-Module 安装模块
PowerShell 基础66 条

Install-Module 安装模块

从 PowerShell Gallery 安装模块(如 ActiveDirectory、Pester),支持用户级安装免提权。

Windows 运维速查系统更新于 2026-10-13

Install-Module 是什么

Install-Module 从 PowerShell Gallery(NuGet 仓库)下载并安装模块,安装后 Import-Module 或在支持自动加载的场景下直接调用其中的命令。它让「ActiveDirectory 管理、Pester 测试、PSWindowsUpdate 打补丁」这类扩展能力变成一条命令。安装本身要考虑三件事:装到哪个作用域(谁能用)、网络能否访问仓库、来源是否可信。

基本信息

适用平台Windows PowerShell 5.1 与 PowerShell 7(默认仓库为 PSGallery)
常用命令Find-Module 搜索、Install-Module 安装、Update-Module 更新、Uninstall-Module 卸载、Get-InstalledModule 列表
常用参数-Name、-Scope、-RequiredVersion、-Repository、-Force、-AllowClobber、-AcceptLicense
作用域-Scope CurrentUser 免提权;-Scope AllUsers 需管理员。默认值随版本变化,脚本里显式指定最稳
前置条件首次使用需 NuGet 提供程序(低版本可能提示安装)
离线方案Save-Module -Path 下载到本地目录,拷贝到目标机后 Import-Module 使用

典型使用场景

  • 补齐管理模块:域环境装 ActiveDirectory 模块后用一行命令批量查账号
  • 测试脚本:装 Pester 后为自动化脚本添加单元测试
  • 运维工具:装 PSWindowsUpdate 之类工具实现补丁巡检与安装
  • 版本对齐:用 -RequiredVersion 安装与生产环境一致的模块版本,避免行为差异
  • 离线交付:在联网机器 Save-Module,拷到隔离网机器再导入

常用示例

常用示例
Find-Module PSWindowsUpdate | Select-Object Name, Version        # 搜索并确认版本
Install-Module PSWindowsUpdate -Scope CurrentUser -Force         # 装到当前用户,免提权
Install-Module Pester -RequiredVersion 5.5.0 -Scope CurrentUser  # 指定版本,保证环境一致
Get-InstalledModule                                              # 列出已装模块与版本
Update-Module PSWindowsUpdate -Force                             # 升级到最新版
Install-Module ImportExcel -AllowClobber -Scope CurrentUser      # 允许覆盖同名命令
Import-Module ActiveDirectory                                    # 安装后显式导入
Get-Command -Module ActiveDirectory | Measure-Object             # 核对命令是否可用

参数与场景对照

参数作用什么时候用
-Scope CurrentUser装到当前用户目录,无需管理员个人排障与临时工具,权限受限环境
-Scope AllUsers装到全机器目录,所有用户可用服务器统一运维环境,需提权
-Force跳过确认提示,覆盖已有安装自动化脚本;首次信任仓库提示
-RequiredVersion安装指定版本与生产环境对齐,防止新版行为变更
-AllowClobber允许覆盖已有同名命令模块与内置命令重名时
-Repository指定非默认仓库内部私有仓库或镜像源
首次从 PSGallery 安装会提示「不受信任的存储库」,用 -Force 可跳过交互;也可以先用 Set-PSRepository -Name PSGallery -InstallationPolicy Trusted 把仓库标记为受信任,再执行安装。
受控网络常见两种做法:配置代理让 PowerShell 能访问 Gallery,或在一台联网机器上 Save-Module 下载后拷贝到目标机。隔离网环境不要指望 Install-Module 直接成功,提前准备离线包。

离线与私有源

离线与私有源
Save-Module -Name PSWindowsUpdate -Path D:\offline\modules    # 联网机下载到目录
Copy-Item D:\offline\modules\* -Destination C:\Program Files\WindowsPowerShell\Modules -Recurse -Force
Import-Module PSWindowsUpdate -Verbose                        # 目标机导入
Get-PSRepository | Select-Object Name, SourceLocation         # 查看可用仓库
Register-PSRepository -Name Corp -SourceLocation https://nuget.corp.local/v2  # 注册内部源
从公共仓库安装模块等于在本机执行第三方代码,且模块通常以当前用户权限运行。生产服务器建议走内部仓库、固定版本并做来源审查,不要直接在服务器上安装来源不明的热门模块。

易错点

  • 在服务器上直接装最新版模块:新版行为变更导致依赖旧接口的脚本失效,应固定版本
  • 隔离网里直接 Install-Module:无法访问 Gallery 而失败,需用 Save-Module 离线分发
  • 装到 AllUsers 却没提权:安装失败或只装到用户目录,其他账户用到时找不到模块
  • 被「不受信任的存储库」提示卡住后习惯性加 -Force,忽略了对来源可信度的判断
  • 同名命令冲突:模块命令与内置或其它模块命令重名而未被覆盖,应使用 -AllowClobber 并核对 Get-Command 的实际来源

数据来源与参考

  • Microsoft Learn:Install-Module
  • Microsoft Learn:PowerShell Gallery

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌