在 Windows PowerShell 脚本中创建模块
可以创建模块来存储函数并在脚本之间共享这些函数。 将函数放入模块后,它们就像 cmdlet 一样可发现。 与内置Windows模块一样,模块在需要函数时也会自动加载。
注意
在模块中命名函数时,请使用与 cmdlet 相同的动宾命名约定。 例如,使用动词-名词格式。
注意
模块中的函数可以包含基于注释的帮助, Get-Help 可以发现这些帮助。 在每个函数中包含帮助信息以启用此功能。
如果已在 Windows PowerShell 脚本文件中拥有函数,请使用 .psm1 文件扩展名对其进行重命名,将其转换为模块。 文件结构不需要更改。
Windows PowerShell 使用 $PSModulePath 环境变量来定义从中加载模块的路径。 在 Windows PowerShell 5.1 中,列出了以下路径:
- C:\Users\UserID\Documents\WindowsPowerShell\Modules
- C:\Program Files\WindowsPowerShell\Modules
- C:\Windows\System32\WindowsPowerShell\1.0\Modules
Windows PowerShell 7 包括以下其他路径:
- C:\Users\UserID\Documents\PowerShell\Modules
- C:\Program Files\PowerShell\Modules
- C:\Program Files\PowerShell\7\Modules
注意
PowerShell 7 用户范围路径(Documents\PowerShell\Modules)不同于 Windows PowerShell 5.1 用户范围路径(Documents\WindowsPowerShell\Modules)。 存储在 5.1 路径中的模块不会在 PS7 用户范围会话中自动加载。
注意
如果将模块存储在 C:\Users\UserID\Documents\WindowsPowerShell\Modules 中,则它们仅适用于单个用户。
不会直接将模块放置在“模块”目录中。 相反,必须创建与该文件同名的子文件夹,并将文件放在该子文件夹中。 例如,如果你有一个名为 AdatumFunctions.psm1 的模块,则将其放置在 C:\Program Files\WindowsPowerShell\Modules\AdatumFunctions 中。