关于 powershell-5.1-expert
面向旧版 Windows 环境的 Windows PowerShell 5.1 技能,适用于脚本维护与自动化。重点涵盖 WMI、ADSI、COM、DSC 及旧系统兼容性。
主要功能
- 01WMI 查询与系统管理
- 02ADSI 与目录操作
- 03COM 自动化指导
- 04DSC 与 Windows 自动化
- 05旧版脚本兼容性
适用场景
- 01使用 WMI 查询 Windows 系统
- 02通过 ADSI 管理 Active Directory
- 03使用 COM 自动化 Office 或旧应用
- 04维护适用于旧版 Windows Server 的脚本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 404kidwiz/ claude-supercode-skills --skill powershell-5.1-expert安装后在 Claude Code 中输入/powershell-5.1-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/legacy_patterns.mdmigration_guide.mdps51_quickstart.mdscripts/deploy_dsc.ps1legacy_wrapper.tsmanage_legacy_ad.ps1query_wmi.ps1详细介绍
PowerShell 5.1 专家
用途
为旧版 Windows 环境提供 Windows PowerShell 5.1 方面的专业知识。专攻 WMI 查询、ADSI 操作、COM 自动化,以及维护与旧版 Windows Server 系统兼容的脚本。
适用场景
- 为 Windows Server 2012/2016/2019 编写脚本
- 使用 WMI 进行系统管理
- 通过 ADSI 执行 Active Directory 操作
- COM 自动化(Office、旧版应用)
- 维护向后兼容性
- DSC(Desired State Configuration)
- Windows 专属自动化
- 维护旧版脚本
快速开始
在以下场景中调用此技能:
- 专门使用 Windows PowerShell 5.1
- 使用 WMI 查询系统
- 使用 ADSI 或 COM 对象进行自动化
- 维护旧版 PowerShell 脚本
- 使用 DSC 进行配置管理
以下场景请勿调用:
- 跨平台 PowerShell → 使用
/powershell-7-expert - GUI/TUI 开发 → 使用
/powershell-ui-architect - 安全加固 → 使用
/powershell-security-hardening - 模块架构 → 使用
/powershell-module-architect
决策框架
PowerShell Version Context?
├── Must run on older Windows
│ └── Use 5.1 with WMI/ADSI
├── Cross-platform needed
│ └── Use PowerShell 7+ instead
├── AD Management
│ ├── Simple → ADSI
│ └── Complex → AD Module
└── System Info
├── Legacy → WMI
└── Modern → CIM (also works in 5.1)
核心工作流
1. WMI 系统查询
- 确定 WMI 类(Win32_*)
- 构造 WMI 查询
- 使用 Get-WmiObject 或 Get-CimInstance
- 适当筛选结果
- 格式化输出
- 处理远程系统的错误
2. ADSI 操作
- 创建 DirectoryEntry 对象
- 导航 LDAP 路径
- 查询或修改属性
- 修改后提交更改
- 处理身份验证
- 清理资源
3. COM 自动化
- 使用 New-Object -ComObject 创建 COM 对象
- 访问对象模型
- 执行操作
- 处理 COM 错误
- 正确释放 COM 对象
- 使用 [System.Runtime.InteropServices.Marshal] 清理
最佳实践
- 尽可能使用 CIM cmdlet 代替 WMI(远程处理效果更好)
- 始终为远程操作添加错误处理
- 显式释放 COM 对象,以防止内存泄漏
- 在目标 Windows 版本上进行测试
- 记录所需的 PowerShell 模块
- 为函数使用已批准的动词
反模式
| 反模式 | 问题 | 正确做法 |
|---|---|---|
| 不释放 COM | 内存泄漏 | 显式清理 |
| 在慢速网络上使用 WMI | 性能问题 | 使用带会话的 CIM |
| 没有错误处理 | 静默失败 | 使用 Try/Catch 并记录日志 |
| 硬编码路径 | 可移植性问题 | 使用环境变量 |
| 使用 Write-Host 输出 | 无法捕获输出 | 使用 Write-Output 或 return |
评论
支持 Markdown