SuperAPI AI 工具集

powershell-module-architect

编程与开发

查看项目

更新于 10-15 08:48

技能介绍

用途

PowerShell Module Architect 提供 PowerShell 模块设计与架构方面的专业能力,重点在于创建结构化、可复用且易于维护的 PowerShell 模块。它面向企业 PowerShell 环境,关注模块架构、函数设计、跨版本兼容性以及配置文件(Profile)优化。

主要能力

  • 将零散脚本转化为结构化、可复用的模块
  • 设计模块架构,实现公共(Public)与私有(Private)函数分离
  • 创建跨版本兼容的模块(PowerShell 5.1 与 7+)
  • 优化 PowerShell 配置文件以加快加载速度
  • 构建带正确参数验证的高级函数

使用方式

在以下情况调用该技能:

  • 将零散脚本转化为结构化、可复用的模块
  • 设计模块架构,实现公共/私有函数分离
  • 创建跨版本兼容的模块(PowerShell 5.1 与 7+)
  • 优化 PowerShell 配置文件以加快加载速度
  • 构建带正确参数验证的高级函数

不要在以下情况调用:

  • 不会复用的简单一次性脚本(改用 powershell-5.1-expert 或 powershell-7-expert)
  • 已有结构良好的模块、仅需添加功能(改用相关领域技能)
  • UI 开发(改用 powershell-ui-architect)
  • 安全加固(改用 powershell-security-hardening)

决策框架

何时创建模块:

  • 3 个以上相关函数:创建模块
  • 需要跨团队共享:创建模块 + 清单(manifest)
  • 一次性自动化:保留为脚本
  • 复杂参数集:模块中的高级函数
  • 需要版本兼容:带兼容层的模块

模块结构决策:

  • 少量相关函数(3-10 个):单个 .psm1,内联函数
  • 大量函数(10+):点源(dot-source)模式(Public/Private 文件夹)
  • 发布到 Gallery:完整清单 + 测试 + 文档
  • 团队协作:Git 仓库 + CI/CD + Pester 测试

核心工作流:将脚本转化为模块

适用场景:将 10-50 个零散的 .ps1 脚本重构为有组织的模块。

步骤 1:分析。清点现有脚本并分析函数签名,例如使用 Get-ChildItem 递归查找 .ps1 文件,再用正则匹配 function 定义,统计每个脚本的函数数量,识别可作为 Private 的公共辅助函数。

步骤 2:设计模块结构。创建模块骨架,包括 Public、Private、Tests 目录以及 .psm1 和 .psd1 文件。

步骤 3:分类函数。将面向用户的函数归为 Public(如 Get-OrgADUser、New-OrgADUser、Set-OrgADUser、Remove-OrgADUser),将内部辅助函数归为 Private(如 _ValidateDomainConnection、_BuildDistinguishedName、_ConvertToCanonicalName)。

步骤 4:实现模块文件。在 .psm1 中先点源 Private 函数,再点源 Public 函数,并通过 Export-ModuleMember 显式导出公共函数。

步骤 5:创建模块清单。使用 New-ModuleManifest 生成 .psd1,设置 RootModule、ModuleVersion、Author、CompanyName、Description、PowerShellVersion(最低版本)以及 FunctionsToExport 等。

步骤 6:添加 Pester 测试。在 Tests 目录中编写测试,验证模块导出的函数、清单有效性以及函数参数接受情况。

高级函数模板

提供带 CmdletBinding、参数验证(ValidateNotNullOrEmpty)、支持管道输入(ValueFromPipeline)以及完整帮助注释(SYNOPSIS、DESCRIPTION、PARAMETER、EXAMPLE)的高级函数模板,例如 Get-OrgUser。

集成模式

  • powershell-5.1-expert:模块架构设计完成后,由 5.1 专家实现 Windows 特定功能;在模块结构决策时考虑 5.1 兼容性。
  • powershell-7-expert:模块结构定义后,由 7 专家添加现代语法优化;协作实现基于版本检测的双模式函数。
  • windows-infra-admin:模块架构交由 Windows 管理员实现领域特定逻辑;共同负责 Active Directory、GPO、DNS 模块函数。
  • azure-infra-engineer:模块模式交由 Azure 工程师构建云自动化模块;集成结合本地与 Azure 的跨云模块。

升级信号

  • 单个模块中函数超过 100 个:考虑拆分为子模块
  • 复杂的跨版本问题:咨询 powershell-5.1 与 7 专家
  • 配置文件加载性能低于 1 秒:应用延迟加载模式
  • 安全敏感操作:引入 powershell-security-hardening

附加资源

  • 详细技术参考:见 REFERENCE.md,包含配置文件优化工作流、模块清单模板、动态参数模式
  • 代码示例与模式:见 EXAMPLES.md,包含反模式(单体文件、缺少帮助)、跨版本兼容模式、高级参数验证

限制

资料未提供该技能的具体收费、价格、平台支持范围或实际效果数据,暂未提供。