PowerShell 技能连载 - ARM 模板部署

适用于 PowerShell 5.1 及以上版本

Azure Resource Manager(ARM)模板是微软 Azure 平台原生的基础设施即代码(Infrastructure as Code,IaC)解决方案。通过 JSON 格式声明式地定义云资源,团队可以在版本控制系统中追踪每一次基础设施变更,实现与应用代码同等严谨的发布流程。

在实际运维中,手动点击 Azure 门户创建资源既容易出错,也难以在多环境间保持一致。ARM 模板配合 PowerShell 的 Az 模块,能够一键完成从资源组、虚拟网络到虚拟机的完整环境搭建,并且天然支持幂等部署——无论执行多少次,最终状态始终一致。

本文将从零开始演示如何用 PowerShell 编写、参数化和部署 ARM 模板,涵盖模板验证、增量部署以及多环境参数管理等常见场景。

阅读更多

PowerShell 技能连载 - Azure DevOps 集成

适用于 PowerShell 5.1 及以上版本

Azure DevOps 是微软提供的一站式 DevOps 平台,涵盖了 Boards(工作项跟踪)、Repos(代码仓库)、Pipelines(CI/CD 流水线)、Test Plans(测试管理)和 Artifacts(制品管理)五大核心服务。在企业级开发流程中,团队往往需要通过脚本自动化地与 Azure DevOps 交互,例如批量创建工作项、触发流水线、查询构建状态或管理代码仓库分支策略。

虽然 Azure DevOps 提供了功能完善的 Web 界面和 CLI 工具(az devops),但 PowerShell 凭借其强大的对象处理能力和与其他 Windows/Azure 服务的无缝集成,仍然是许多运维和开发团队的首选自动化工具。通过 Azure DevOps REST API,我们可以在 PowerShell 中完成几乎所有的平台操作,并将这些操作编排到更大的自动化工作流中。

本文将介绍如何使用 PowerShell 调用 Azure DevOps REST API,涵盖身份认证与连接管理、工作项(Work Item)的批量操作、Pipeline 的触发与状态监控,以及代码仓库的分支策略管理。每个场景都配有可直接运行的代码示例和执行结果演示。

阅读更多

PowerShell 技能连载 - Hyper-V 虚拟机管理

适用于 PowerShell 5.1 及以上版本(Windows),需要 Hyper-V 角色

Hyper-V 是微软提供的原生虚拟化平台,从 Windows Server 2008 开始内置,在 Windows 10/11 专业版和企业版中同样可用。对于系统管理员和 DevOps 工程师来说,能够通过脚本批量管理虚拟机是提高效率的关键。PowerShell 的 Hyper-V 模块提供了完整的 cmdlet 集,覆盖虚拟机的创建、配置、启动、快照、迁移等全生命周期操作。

在实际运维场景中,手动通过 Hyper-V 管理器操作几台虚拟机尚可应付,但当你需要管理数十甚至上百台虚拟机时,手动操作不仅耗时,还容易出错。通过 PowerShell 脚本,我们可以将日常的虚拟机管理任务自动化,比如批量创建开发环境、定期检查虚拟机状态、自动创建检查点等。

本文将通过几个实用的示例,展示如何使用 PowerShell 完成 Hyper-V 虚拟机的日常管理任务,包括查询状态、批量创建虚拟机、管理检查点以及资源监控。

阅读更多

PowerShell 技能连载 - 参数补全器

适用于 PowerShell 5.1 及以上版本

在 PowerShell 日常使用中,Tab 补全(Tab Completion)是最常用的交互功能之一。当我们输入 cmdlet 名称、参数名或文件路径时,按下 Tab 键就能自动补全,极大提高了命令行操作效率。然而,对于自定义函数中的参数值(例如要求用户输入一个服务名、一个环境名称或一个日志级别),PowerShell 默认无法提供智能提示,用户必须手动输入,这不仅降低了效率,还容易出错。

Argument Completer(参数补全器)正是解决这一问题的利器。通过为函数参数注册补全逻辑,我们可以在用户按 Tab 或 Ctrl+Space 时,动态展示可选值列表。这些值可以来自固定集合、运行时计算结果,甚至远程 API 查询,让自定义函数拥有和内置 cmdlet 一样的 IntelliSense 体验。

本文将从基础的 [ArgumentCompleter] 属性入手,逐步介绍 Register-ArgumentCompleter 注册全局补全、结合动态数据源构建高级补全器,帮助你为团队工具库打造专业级的参数提示体验。

阅读更多

PowerShell 技能连载 - Azure 成本管理

适用于 PowerShell 5.1 及以上版本

云上资源用起来方便,但月底账单一来往往让人心惊。Azure 提供了 Cost Management 服务,可以帮助我们追踪、分析和优化云支出。然而,通过门户网站手动查看报表既慢又不灵活,尤其当你管理多个订阅时,逐个点开查看效率极低。

PowerShell 结合 Az 模块和 Cost Management REST API,可以让我们以脚本化的方式自动采集费用数据、设置预算告警、识别闲置资源。这意味着你可以将成本管控嵌入 CI/CD 流水线,或者每天早上自动生成一份费用摘要邮件发给团队,从被动等账单变为主动管理成本。

本文将从实际场景出发,演示如何用 PowerShell 查询 Azure 订阅的消费明细、创建预算和告警规则、以及自动扫描可优化资源。所有操作均通过脚本完成,无需登录门户。

阅读更多

PowerShell 技能连载 - Windows Admin Center 自动化

适用于 PowerShell 5.1 及以上版本(Windows)

Windows Admin Center(简称 WAC)是微软推出的基于浏览器的服务器管理工具,它将传统的服务器管理器、故障排除工具和 PowerShell 集成到一个统一的 Web 界面中。对于管理本地数据中心或混合云环境的运维人员来说,WAC 提供了直观的图形化操作体验,覆盖从单台服务器到 Hyper-V 集群的全方位管理场景,包括事件查看、性能监控、文件服务、远程桌面等核心功能。

虽然 WAC 本身是图形界面工具,但它的底层大量调用 PowerShell 命令,并且提供了 REST API 和 PowerShell 模块来支持自动化操作。这意味着我们可以将 WAC 的能力嵌入到脚本流水线中,实现服务器批量配置、状态巡检、证书更新等重复性任务的自动化。尤其对于管理数十甚至上百台服务器的团队来说,通过 PowerShell 调用 WAC API 能够显著提升运维效率,减少手动操作的出错风险。

本文将介绍如何通过 PowerShell 与 Windows Admin Center 交互,涵盖连接管理、节点状态查询、批量操作以及通过 REST API 实现高级自动化场景,帮助你构建基于 WAC 的自动化运维工作流。

阅读更多

PowerShell 技能连载 - Intune 设备管理

适用于 PowerShell 5.1 及以上版本

Microsoft Intune 是微软推出的云端移动设备管理(MDM)和移动应用管理(MAM)解决方案,已经成为企业终端设备管理的核心平台。随着混合办公模式的普及,IT 管理员需要一种高效的方式来批量查询、配置和管理通过 Intune 注册的设备,而不再局限于图形化控制台的手动操作。

PowerShell 配合 Microsoft Graph API,为 Intune 管理提供了强大的自动化能力。通过脚本化操作,管理员可以实现设备合规性巡检、批量策略下发、设备生命周期管理等日常任务,大幅减少重复劳动。尤其在管理成百上千台设备时,自动化脚本的价值更加显著。

本文将介绍如何使用 PowerShell 连接 Intune,查询设备信息、管理合规策略,以及批量执行设备操作,帮助你构建属于自己的 Intune 自动化管理工作流。

阅读更多

PowerShell 技能连载 - CI/CD 流水线集成

适用于 PowerShell 7.0 及以上版本(跨平台)

持续集成与持续交付(CI/CD)是现代 DevOps 实践的核心环节。无论是 GitHub Actions、Azure DevOps 还是 GitLab CI,流水线的编排本质上都是将一系列自动化步骤串联起来:代码拉取、依赖安装、测试执行、构建打包、环境部署。PowerShell 作为跨平台的脚本语言,天然适合承担这些步骤的”粘合剂”角色——它既能调用系统命令,又能解析结构化数据,还能与 REST API 交互,是构建 CI/CD 流水线的利器。

很多团队在编写 CI/CD 脚本时仍然依赖 Bash 或 Python,但 PowerShell 在 Windows 和 Linux 上行为一致的特性,加上对 JSON、XML、YAML 的原生支持,使得同一套脚本可以在不同运行器(runner)上无缝切换。尤其是在混合环境中管理 .NET 项目、Azure 资源或 Windows 工作负载时,PowerShell 的优势更加明显。将流水线逻辑封装为 PowerShell 模块后,还能实现跨仓库复用,减少重复维护成本。

本文将通过三个实战场景,展示如何用 PowerShell 构建可测试、可复用、可观测的 CI/CD 自动化脚本:包括流水线阶段编排与结果报告、版本号自动管理、以及部署前置检查。每个示例都尽量贴近真实项目中的使用方式,帮助你快速将 PowerShell 集成到现有流水线中。

阅读更多
PowerShell 技术 QQ 群