适用于 PowerShell 5.1 及以上版本
哈希表(Hashtable)是 PowerShell 中使用频率最高的数据结构之一——从 ConvertFrom-Json 的输出到 Invoke-Command 的参数,从配置管理到缓存系统,哈希表无处不在。然而,很多用户只会基本的键值操作,不了解有序字典、大小写敏感性、嵌套结构、线程安全字典等高级特性。深入理解这些特性,可以写出更高效、更优雅的代码。
本文将系统讲解 PowerShell 中哈希表和相关字典类型的用法与最佳实践。
适用于 PowerShell 5.1 及以上版本
哈希表(Hashtable)是 PowerShell 中使用频率最高的数据结构之一——从 ConvertFrom-Json 的输出到 Invoke-Command 的参数,从配置管理到缓存系统,哈希表无处不在。然而,很多用户只会基本的键值操作,不了解有序字典、大小写敏感性、嵌套结构、线程安全字典等高级特性。深入理解这些特性,可以写出更高效、更优雅的代码。
本文将系统讲解 PowerShell 中哈希表和相关字典类型的用法与最佳实践。
适用于 PowerShell 5.1 及以上版本
版本号管理看似简单,实际在团队协作中经常引发混乱——构建号怎么递增、预发布版本怎么标记、依赖版本范围怎么声明。语义化版本(Semantic Versioning,SemVer)提供了一套清晰的规则:主版本号.次版本号.修订号,再加上可选的预发布标记和构建元数据。PowerShell 模块本身使用版本号管理,掌握 SemVer 的操作技巧,对模块发布、依赖管理和发布流程自动化都很重要。
本文将讲解如何在 PowerShell 中解析、比较、操作语义化版本号,以及自动化版本管理的实用技巧。
适用于 PowerShell 5.1 及以上版本
安全编码不是可选项,而是生产环境的基本要求。PowerShell 脚本经常处理凭据、连接字符串、API 密钥等敏感信息,如果处理不当,这些信息可能泄露到日志文件、版本控制系统、甚至被恶意代码利用。从凭据管理、输入验证、代码签名,到审计日志和合规检查,PowerShell 提供了完整的安全工具链。
本文将讲解 PowerShell 安全编码的核心实践,帮助构建安全可靠的自动化脚本。
适用于 PowerShell 5.1 及以上版本
运维和开发中经常需要从网页获取数据——监控服务状态页、采集系统指标、下载最新版本的工具、从内部管理平台提取报表。PowerShell 内置的 Invoke-WebRequest 可以发送 HTTP 请求并解析 HTML,结合正则表达式和 HTML 解析能力,可以高效完成大部分数据采集任务。
本文将讲解 HTTP 请求、HTML 解析、表单提交、会话管理,以及浏览器自动化技术。
适用于 PowerShell 5.1 及以上版本,调用 AI API 需要网络访问和 API 密钥
2025 年,大语言模型(LLM)已经从实验性工具变成了生产力基础设施的一部分。PowerShell 作为自动化运维的核心语言,可以很自然地与 AI 服务集成——用自然语言生成运维脚本、让 AI 分析日志错误、构建智能告警系统、甚至搭建本地的 AI 助手。无论是调用云端 API(OpenAI、Azure OpenAI)还是本地模型(Ollama),PowerShell 都能胜任。
本文将讲解如何在 PowerShell 中调用 AI 服务、处理响应流,以及构建实用的 AI 驱动运维工具。
PowerShell 技能连载 - 剪贴板与 GUI 互操作
适用于 PowerShell 5.1 及以上版本(Windows),剪贴板功能需要 Windows 环境
PowerShell 不仅仅是命令行工具——它可以与 Windows 图形界面深度交互。从读写剪贴板、弹出消息框、打开文件对话框,到操控 GUI 窗口和发送按键,PowerShell 可以成为连接命令行和桌面操作的桥梁。在日常工作中,这些功能可以大幅简化重复性的 GUI 操作。
本文将讲解剪贴板操作、消息框、文件对话框,以及窗口自动化的技巧。
适用于 PowerShell 5.1 及以上版本
长时间运行的脚本如果不给用户任何反馈,就像一个”黑盒”——用户不知道脚本在做什么、进度如何、是否卡死了。良好的进度反馈是区分”能用”和”好用”脚本的关键。PowerShell 提供了 Write-Progress 命令用于显示进度条、Write-Verbose 用于详细输出、Write-Debug 用于调试信息,合理使用这些机制可以大幅提升脚本的用户体验。
本文将讲解 PowerShell 的反馈机制、进度条设计,以及如何构建用户友好的自动化脚本。
适用于 PowerShell 5.1 及以上版本
“程序能工作”和”程序能可靠地工作”之间的差距,往往就在于错误处理。PowerShell 的错误处理机制比大多数脚本语言更丰富——有终止错误和非终止错误的区分、有 $ErrorActionPreference 全局设置、有 try/catch/finally 结构、有 -ErrorVariable 参数。理解这些机制并设计合理的错误处理模式,是编写生产级脚本的关键。
本文将系统讲解 PowerShell 的错误处理机制、常见设计模式,以及如何构建可靠的自动化脚本。
适用于 PowerShell 5.1 及以上版本
运维报告是沟通技术状态的桥梁——无论是每日健康检查报告、月度容量报告还是安全审计报告,格式清晰、内容直观的 HTML 报告远比纯文本或截图有效。PowerShell 的 ConvertTo-Html 命令可以将任何对象集合转为 HTML 表格,结合自定义 CSS 样式和 Here-String 模板,可以快速生成专业级的报告。
本文将讲解 HTML 报告的生成技巧、样式定制、邮件发送,以及实用的报告模板。
适用于 PowerShell 5.1 及以上版本(Windows),FileSystemWatcher 需要 .NET Framework/Core
文件系统监控是自动化运维的重要能力——监控配置文件变更触发服务重载、监控上传目录自动处理新文件、监控日志目录异常增长告警。.NET 的 FileSystemWatcher 类提供了操作系统级的文件变更通知机制,比轮询扫描高效得多。结合 PowerShell 的事件处理能力,可以构建响应迅速的文件系统自动化工作流。
本文将讲解 FileSystemWatcher 的高级用法、事件处理模式,以及实用的自动化场景。