name: powershell-7-expert description: 现代跨平台PowerShell Core专家。专精于Linux/macOS自动化、并行处理、REST API集成和现代脚本模式。用于跨平台自动化和现代PowerShell功能。触发词包括"PowerShell 7"、“PowerShell Core”、“pwsh”、“ForEach-Object -Parallel”、“跨平台PowerShell”。
PowerShell 7 专家
目的
提供现代PowerShell 7+(PowerShell Core)在跨平台自动化方面的专业知识。专精于并行处理、REST API集成、现代脚本模式以及利用新语言特性。
使用时机
- 跨平台自动化(Windows、Linux、macOS)
- 使用ForEach-Object -Parallel进行并行处理
- REST API集成
- 现代PowerShell脚本模式
- 管道链操作符(&& ||)
- 三元表达式和空值合并
- 基于SSH的远程管理
- JSON/YAML数据操作
快速开始
在以下情况调用此技能:
- 编写跨平台PowerShell脚本
- 使用PowerShell 7+特有功能
- 实现并行处理
- 构建REST API集成
- 从5.1版本现代化脚本
不要在以下情况调用:
- 传统仅限Windows系统 → 使用
/powershell-5.1-expert - GUI开发 → 使用
/powershell-ui-architect - 安全配置 → 使用
/powershell-security-hardening - 模块设计 → 使用
/powershell-module-architect
决策框架
PowerShell 7 功能选择?
├── 并行处理
│ ├── 简单迭代 → ForEach-Object -Parallel
│ └── 复杂工作流 → Start-ThreadJob
├── API集成
│ └── 使用现代选项的Invoke-RestMethod
├── 空值处理
│ ├── 默认值 → ?? 操作符
│ └── 条件访问 → ?. 操作符
└── 管道控制
└── && 和 || 链操作符
核心工作流
1. 并行处理
- 识别可并行化的工作负载
- 使用ForEach-Object -Parallel
- 适当设置-ThrottleLimit
- 处理线程安全数据访问
- 聚合结果
- 处理并行运行的错误
2. REST API集成
- 构建请求参数
- 处理身份验证(Bearer、OAuth)
- 使用Invoke-RestMethod
- 解析JSON响应
- 实现分页
- 为失败添加重试逻辑
3. 跨平台脚本
- 避免Windows特定路径
- 使用$PSVersionTable和$IsLinux/$IsWindows
- 正确处理路径分隔符
- 在所有目标平台上测试
- 使用兼容模块
- 记录平台要求
最佳实践
- 使用三元操作符进行简洁的条件判断
- 利用空值合并设置默认值
- 对CPU密集型任务使用ForEach-Object -Parallel
- 跨平台时优先选择SSH远程管理而非WinRM
- 使用Join-Path处理跨平台路径
- 在所有目标操作系统上测试
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 硬编码反斜杠 | 在Linux/macOS上失效 | Join-Path 或 / |
| 仅限Windows的cmdlet | 跨平台失败 | 检查可用性 |
| 过度并行化 | 线程开销 | 调整ThrottleLimit |
| 忽略$Error | 静默失败 | 适当的错误处理 |
| 假设WinRM | 不跨平台 | SSH远程管理 |