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

PowerShell 5.1模块清单中FunctionsToExport与CmdletsToExport的实用差异

PowerShell模块清单中FunctionsToExport与CmdletsToExport的实际影响

核心原则

绝对不要把PowerShell脚本函数同时添加到FunctionsToExport和CmdletsToExport两个数组中,这是错误的用法——这两个字段分别对应两种完全不同类型的命令:

  • FunctionsToExport:专门用于声明模块内的PowerShell脚本函数(即你在.ps1文件里用function关键字定义的命令)
  • CmdletsToExport:专门用于声明模块内的编译型Cmdlet(比如用C#等.NET语言编写、编译成DLL的命令)

关于注释帮助失效的原因

你遇到的「仅在CmdletsToExport中声明函数时注释帮助不生效」的问题,本质是PowerShell的识别逻辑导致的:
当你把脚本函数放到CmdletsToExport里,PowerShell会将其当作编译型Cmdlet处理,但编译型Cmdlet的帮助系统依赖XML格式的帮助文件,而非脚本函数的注释式帮助。只有将脚本函数放在FunctionsToExport中,PowerShell才会正确识别并加载它的注释帮助。

CmdletsToExport的实际作用

这个字段仅对编译型Cmdlet有效,作用包括:

  • 精准控制模块对外暴露的编译型Cmdlet,避免默认导出模块内所有编译型Cmdlet的行为
  • 提升模块导入效率,PowerShell只需处理你指定的Cmdlet,无需扫描整个DLL
  • 明确模块的对外接口,让用户清晰知道模块提供的正式命令范围

总结

对于PowerShell脚本函数,只需要将其添加到FunctionsToExport数组即可;CmdletsToExport完全是给编译型Cmdlet准备的,脚本函数放到这里不仅没有任何正向作用,还会导致注释帮助失效等问题,绝对不要混用。

内容的提问来源于stack exchange,提问作者Avner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 06:29:51