PowerShell 技能连载 - PowerShell 7 新特性实战
适用于 PowerShell 7.0 及以上版本
PowerShell 技能连载 - PowerShell 7 新特性实战
适用于 PowerShell 7.0 及以上版本
适用于 PowerShell 7.0 及以上版本
适用于 PowerShell 5.1 及以上版本
在 PowerShell 日常使用中,Tab 补全(Tab Completion)是最常用的交互功能之一。当我们输入 cmdlet 名称、参数名或文件路径时,按下 Tab 键就能自动补全,极大提高了命令行操作效率。然而,对于自定义函数中的参数值(例如要求用户输入一个服务名、一个环境名称或一个日志级别),PowerShell 默认无法提供智能提示,用户必须手动输入,这不仅降低了效率,还容易出错。
Argument Completer(参数补全器)正是解决这一问题的利器。通过为函数参数注册补全逻辑,我们可以在用户按 Tab 或 Ctrl+Space 时,动态展示可选值列表。这些值可以来自固定集合、运行时计算结果,甚至远程 API 查询,让自定义函数拥有和内置 cmdlet 一样的 IntelliSense 体验。
本文将从基础的 [ArgumentCompleter] 属性入手,逐步介绍 Register-ArgumentCompleter 注册全局补全、结合动态数据源构建高级补全器,帮助你为团队工具库打造专业级的参数提示体验。
适用于 PowerShell 5.1 及以上版本
云上资源用起来方便,但月底账单一来往往让人心惊。Azure 提供了 Cost Management 服务,可以帮助我们追踪、分析和优化云支出。然而,通过门户网站手动查看报表既慢又不灵活,尤其当你管理多个订阅时,逐个点开查看效率极低。
PowerShell 结合 Az 模块和 Cost Management REST API,可以让我们以脚本化的方式自动采集费用数据、设置预算告警、识别闲置资源。这意味着你可以将成本管控嵌入 CI/CD 流水线,或者每天早上自动生成一份费用摘要邮件发给团队,从被动等账单变为主动管理成本。
本文将从实际场景出发,演示如何用 PowerShell 查询 Azure 订阅的消费明细、创建预算和告警规则、以及自动扫描可优化资源。所有操作均通过脚本完成,无需登录门户。
PowerShell 技能连载 - VS Code 扩展开发
适用于 PowerShell 7.0 及以上版本
VS Code 的扩展生态极其丰富,但当现有扩展无法满足需求时,我们就需要自己动手开发。虽然 VS Code 扩展通常用 TypeScript 编写,但 PowerShell 在扩展开发的工程化管理中扮演着不可或缺的角色——从脚手架生成、依赖安装、构建打包到发布上线,整个生命周期都可以用 PowerShell 自动化。特别是在团队协作中,统一的构建和发布脚本能大幅降低出错概率。
本文将介绍如何利用 PowerShell 自动化 VS Code 扩展开发的完整流程,包括环境准备、项目初始化、构建打包和版本发布,帮助你在扩展开发中事半功倍。
PowerShell 技能连载 - Azure Policy 合规管理
适用于 PowerShell 5.1 及以上版本
随着企业云基础设施规模不断膨胀,资源合规性管理成为运维团队的核心挑战。Azure Policy 是微软 Azure 平台提供的治理服务,能够在资源创建和更新时自动执行组织规则,例如限制资源类型、强制标签策略、审核配置基线等。通过 PowerShell 的 Az 模块,我们可以将策略的定义、分配和合规审查全部纳入自动化流水线,实现”基础设施即代码”的治理闭环。
传统的合规审计往往依赖人工巡检或第三方工具,耗时且容易遗漏。Azure Policy 将合规检查前移到资源生命周期中,一旦资源偏离预期状态就会触发警报甚至自动修正。结合 PowerShell 的批量处理能力,管理员可以在几分钟内对数百个订阅进行策略评估,快速定位不合规资源并生成报告,大幅降低安全风险和审计成本。
本文将介绍如何使用 PowerShell 完成 Azure Policy 的常见操作,包括查询策略定义、分配策略到作用域、检索合规状态,以及批量导出合规报告,帮助你构建可重复、可审计的云治理工作流。
PowerShell 技能连载 - PowerShell Gallery 发布
适用于 PowerShell 5.1 及以上版本
PowerShell Gallery(www.powershellgallery.com)是微软官方维护的 PowerShell 模块和脚本共享平台,类似于 Node.js 的 npm 或 Python 的 PyPI。通过它,你可以将自己编写的模块分发给全球的 PowerShell 用户,也可以方便地安装其他人发布的工具。对于团队协作而言,将内部通用组件发布到私有 Gallery 或公开 Gallery,能够显著提升代码复用率和团队协作效率。
本文将从模块准备、API Key 管理、发布流程以及版本更新四个环节,完整介绍如何将一个自定义 PowerShell 模块发布到 PowerShell Gallery。无论你是开源项目维护者还是企业内部工具开发者,掌握这一流程都能让你的 PowerShell 代码分发更加规范和专业。
PowerShell 技能连载 - Windows Terminal 定制
适用于 PowerShell 7.0 及以上版本
Windows Terminal 已经成为 Windows 平台上最受欢迎的终端模拟器之一。它支持多标签页、GPU 加速渲染、Unicode 和 UTF-8 字符显示,以及对 WSL、CMD、PowerShell 等多种 Shell 的统一管理。但对于日常重度使用命令行的开发者来说,默认的 Terminal 外观和功能往往不够用——提示符单调、配色平庸、缺少上下文信息,这些都会影响工作效率。
好消息是,借助 PowerShell 7 的强大生态,我们可以通过 Oh My Posh 主题引擎、Profile 脚本自动化以及 Terminal 的 JSON 配置,打造一个既美观又实用的终端环境。从 Git 状态感知的提示符,到一键切换配色方案,再到自定义快捷键绑定,几乎所有的视觉和行为要素都可以按需调整。
本文将从实际场景出发,逐步展示如何用 PowerShell 脚本完成 Windows Terminal 的深度定制。每一段代码都可以直接复制到你的环境中运行,让你在几分钟内拥有一个令人印象深刻的终端工作区。
适用于 PowerShell 5.1 及以上版本
适用于 PowerShell 5.1 及以上版本
PowerShell 模块是代码复用的标准单元。将常用的函数封装为模块,不仅可以在不同脚本中轻松调用,还能方便地分享给团队成员或发布到 PowerShell Gallery。一个结构良好的模块包含清单文件(PSD1)、脚本模块(PSM1)、帮助文档和测试用例。掌握模块开发,是从”写脚本”到”做工程”的关键一步。
本文将介绍模块的创建、清单配置、打包发布的完整流程。