PSUtils 是面向日常脚本、开发环境和系统管理的 PowerShell 工具模块。模块通过 manifest 聚合环境变量、配置解析、文件系统、网络、Docker、代理、缓存和平台工具。
- PowerShell 7.4 或更高版本
- PowerShell Core edition
- Windows、Linux 或 macOS;部分命令只在对应平台生效
运行时版本和公共导出以 psutils.psd1 为唯一事实来源。
从仓库根目录导入规范 manifest:
Import-Module ./psutils/psutils.psd1 -Force也可以直接导入模块目录,PowerShell 会解析到同一个 manifest:
Import-Module ./psutils -Forceindex.psm1 仅用于兼容旧脚本,会输出弃用提示;新脚本和示例不应继续使用该入口。
# 浏览模块当前实际导出的命令
Get-Command -Module psutils | Sort-Object Noun, Verb
# 使用 PowerShell 标准帮助系统
Get-Help Get-Tree -Full
Get-Help Invoke-WithCache -Examples
# 按名称筛选模块命令
Get-Command -Module psutils -Name '*Config*'旧的 Search-ModuleHelp、Find-PSUtilsFunction 和 Get-FunctionHelp 已弃用,当前仅为
兼容已有调用而保留。新代码应使用 Get-Help 和 Get-Command。
以下分类只列出常用入口,不复制完整导出清单。完整列表请运行
Get-Command -Module psutils。
Resolve-ConfigSources:按统一优先级合并配置来源Read-ConfigEnvFile、Resolve-DefaultEnvFiles:读取和发现 env 配置Get-Dotenv、Install-Dotenv:解析或加载.env文件Invoke-WithScopedEnvironment:在受控作用域内临时设置环境变量
Get-Tree、Get-TreeObject、ConvertTo-TreeJson:查看和转换目录树Copy-FileSystemItemSafe、New-BackupSnapshot:安全复制和备份Get-ArchiveKind、Expand-ArchiveFile:识别并解压归档文件
Find-ExecutableCommand、Resolve-NativeExecutablePath:发现原生命令Invoke-NativeCommand、Format-NativeCommandLine:调用和记录原生命令Test-PortOccupation、Get-PortProcess、Wait-ForURL:端口与服务检查
Test-DockerComposeAvailable、Invoke-DockerComposeCommand:Docker Compose 调用Enable-WslDockerWrapper、Invoke-WslDocker:WSL Docker 参数和路径转换Test-DockerDesktopDaemonAvailable、Test-WslDockerEngineAvailable:运行时探测
$result = Invoke-WithCache -Key 'system-info' -MaxAge ([TimeSpan]::FromHours(1)) -ScriptBlock {
Get-ComputerInfo
}
Get-CacheStats
Clear-ExpiredCache -WhatIfInvoke-WithCache 支持 XML 和 Text 两种缓存格式,以及 -Force、-NoCache
和 -WhatIf。缓存目录由模块按当前操作系统选择,不应在调用方硬编码。
$context = New-OssContext `
-Bucket 'examplebucket' `
-Region 'cn-hangzhou' `
-Host 'static.example.com' `
-AccessKeyId $env:ALIYUN_ACCESS_KEY_ID `
-AccessKeySecret $env:ALIYUN_ACCESS_KEY_SECRET
Get-OssObjectList -Context $context -Prefix 'assets/'上传命令包括 Publish-OssObject 和 Publish-OssDirectory。涉及真实对象存储时,先在
测试 bucket 或受控前缀验证。
Get-OperatingSystem、New-PlatformDescriptor:平台识别Get-GpuInfo、Get-SystemMemoryInfo:硬件信息Install-RequiredModule、Install-ExecutableFile:依赖安装Install-Font、Uninstall-Font、New-Shortcut:平台集成Start-Proxy、Close-Proxy、Set-Proxy:当前会话代理管理
examples/tree-examples.ps1:Get-Tree常用参数examples/help-search-examples.ps1:标准帮助和命令发现examples/test-script-example.ps1:脚本帮助注释结构docs/Get-Tree.md:Get-Tree参数与输出说明
活动示例必须使用规范 manifest 或明确的独立子模块入口,并保持无网络下载、无系统配置 修改。历史或具有清理副作用的演示不作为活动入口。
在仓库根目录运行:
# psutils 包级快速回归
pnpm --filter psutils test:qa
# 根级格式、静态检查与快速测试
pnpm qa
# 主机与 Linux 容器 PowerShell 完整回归
pnpm test:pwsh:all文档和示例契约由 Pester 检查,包括 manifest 事实、弃用入口、脚本语法、导入路径和 安全示例 smoke 执行。
- 模块版本:1.0.0
- PowerShell:7.4+ Core
- 作者:mudssky
- 许可:All rights reserved
版本与兼容范围变更时,先更新 psutils.psd1,再同步本文档并运行契约测试。