PowerShell 技能连载 - 脚本模块化设计

模块化基础

1
2
3
4
5
6
7
8
9
10
11
12
# 函数封装示例
function Get-SystemHealth {
[CmdletBinding()]
param(
[ValidateSet('Basic','Full')]
[string]$DetailLevel = 'Basic'
)
# 健康检查逻辑...
}

# 模块导出配置
Export-ModuleMember -Function Get-SystemHealth

应用场景

  1. 自动化脚本包

    1
    2
    3
    4
    5
    # 模块目录结构
    MyModule/
    ├── Public/
    │ └── Get-SystemHealth.ps1
    └── MyModule.psd1
  2. 模块分发使用

    1
    2
    3
    # 安装模块
    Copy-Item -Path ./MyModule -Destination $env:PSModulePath.Split(';')[0] -Recurse
    Import-Module MyModule

最佳实践

  1. 分离公共/私有函数

  2. 实现模块帮助文档

  3. 版本控制规范:

    1
    2
    3
    4
    5
    6
    # 模块清单配置
    @{
    ModuleVersion = '1.2.0'
    FunctionsToExport = @('Get-SystemHealth')
    RequiredModules = @('PSScriptAnalyzer')
    }
  4. 依赖管理:

    1
    2
    3
    # 需求声明
    #Requires -Modules @{ModuleName='Pester';ModuleVersion='5.3.1'}
    #Requires -Version 7.0

PowerShell 技能连载 - 脚本模块化设计

http://blog.vichamp.com/2024/06/24/powershell-script-modularization/

作者

吴波

发布于

2024-06-24

更新于

2025-03-25

许可协议

评论