PowerShell 技能连载 - CI/CD 流水线中的 PowerShell 实践

适用于 PowerShell 7.0 及以上版本,需要 GitHub 账号

2025 年,CI/CD(持续集成/持续部署)已经成为软件交付的标准流程。无论是小型个人项目还是企业级微服务架构,自动化构建、测试和部署的能力都直接影响着交付效率和代码质量。GitHub Actions 作为目前最流行的 CI/CD 平台之一,原生支持 PowerShell 运行环境,这让 PowerShell 用户可以无缝融入 DevOps 工作流。

PowerShell 在 CI/CD 场景中有独特优势:强大的对象管道让数据处理变得简洁,跨平台支持(PowerShell 7+)让同一套脚本可以在 Windows、Linux 和 macOS Runner 上运行,丰富的模块生态则覆盖了从代码质量检查到部署验证的各个环节。本文将从脚本设计原则出发,逐步构建一个完整的 CI/CD 流水线方案。

阅读更多

PowerShell 技能连载 - 哈希表与 PSCustomObject 深度解析

适用于 PowerShell 7.0 及以上版本

在 PowerShell 中,几乎所有数据都以对象的形式流转。哈希表(Hashtable)和 PSCustomObject 是两种最常用的结构化数据容器,它们贯穿于配置管理、API 调用、数据转换、管道处理等几乎所有场景。理解它们的异同和最佳使用时机,是写出高效、可维护脚本的关键。

本文将从基础操作入手,逐步深入到两者的选择策略、嵌套结构处理和实战数据转换,帮助你全面掌握这两种核心数据结构。

阅读更多

PowerShell 技能连载 - PowerShell 7 新特性深度实践

适用于 PowerShell 7.0 及以上版本

PowerShell 7 是 PowerShell 团队基于 .NET Core(现 .NET 5+)重新构建的重大版本。与 Windows PowerShell 5.1 相比,PS7 不仅实现了跨平台运行(Windows、Linux、macOS),还引入了大量新语法特性和性能优化。对于仍在使用 PS5.1 的运维团队来说,了解这些新特性可以显著提升脚本编写效率和代码可读性。

本文将深入讲解 PowerShell 7 中最实用的几项新特性,包括三元运算符、空合并运算符、管道链运算符、以及跨平台兼容性实践,并在文末提供一份从 PS5.1 迁移到 PS7 的检查清单。

阅读更多

PowerShell 技能连载 - Windows 防火墙规则管理

适用于 PowerShell 5.1 及以上版本(Windows 内置模块)

Windows 防火墙是服务器和终端安全的第一道防线。无论是部署新服务、排查网络故障还是进行安全加固,都离不开防火墙规则的配置与管理。传统的图形界面操作虽然直观,但在批量管理和自动化场景下效率低下,且容易遗漏。

PowerShell 内置的 NetSecurity 模块提供了完整的防火墙管理能力,支持查看、创建、修改和删除规则,所有操作都可以脚本化、可重复执行。对于运维工程师来说,掌握这套命令不仅能提高日常工作效率,更是实现基础设施即代码(IaC)的重要基础。

阅读更多

PowerShell 技能连载 - Git 版本控制集成

适用于 PowerShell 7.0 及以上版本,需要安装 git

2025 年,几乎所有开发者都在使用 Git 进行版本管理。PowerShell 脚本作为基础设施即代码(IaC)的核心组成部分,同样需要纳入版本控制。将 Git 操作集成到 PowerShell 工作流中,不仅可以追踪脚本变更历史,还能实现自动化部署、配置审计和团队协作。

虽然 Git 自带命令行工具,但直接在 PowerShell 中调用 git 命令有时不太方便——输出格式不友好、错误处理不够优雅、与其他 PowerShell 对象的互操作性差。本文将展示如何在 PowerShell 中优雅地调用 Git、封装常用操作、构建自动化工作流。

阅读更多

PowerShell 技能连载 - 远程管理

适用于 PowerShell 5.1 及以上版本

管理一台服务器时,远程桌面(RDP)可能就够了。但当你的环境有十几台甚至上百台服务器时,逐台登录操作就变得不可接受了。PowerShell Remoting 提供了一种高效、可扩展的远程管理方式,让你在一台机器上就能管理整个服务器群。

PowerShell Remoting 基于 WinRM(Windows Remote Management)协议,本质上是对 WS-Management 标准的实现。它不仅支持交互式会话,还支持一对多的批量命令执行,甚至可以跨越信任边界的双跳认证(CredSSP)。本文将从基础配置讲起,逐步深入到高级远程管理场景。

阅读更多

PowerShell 技能连载 - 理解对象模型

适用于 PowerShell 所有版本

PowerShell 与传统 Shell(如 Bash、CMD)最大的区别在于:PowerShell 处理的是 .NET 对象,而不是纯文本。理解”一切皆对象”这个核心理念,是从入门走向精通 PowerShell 的关键一步。

在 Bash 中,命令输出是一串字符串,你需要用 awksedgrep 等工具来解析。而在 PowerShell 中,每条命令的输出都是结构化的对象,拥有属性和方法,可以直接访问和操作。这让自动化脚本更加健壮、可读且易于维护。

阅读更多

PowerShell 技能连载 - 并行处理实战

适用于 PowerShell 7.0 及以上版本

当我们需要对大量对象执行相同操作时,传统的顺序处理方式往往耗时过长。例如检查 100 台服务器的连通性,逐台 ping 可能需要几分钟,但如果同时发起多个 ping 操作,时间可以缩短到几秒钟。

PowerShell 7 引入了 ForEach-Object -Parallel 参数,让并行处理变得前所未有的简单。对于更高级的场景,还可以通过 Runspace 直接操控底层并发机制。本文将系统介绍 PowerShell 中的并行处理方法,帮助你在合适的场景下大幅提升脚本执行效率。

阅读更多

PowerShell 技能连载 - Windows 事件日志分析

适用于 PowerShell 5.1 及以上版本

Windows 事件日志是排查系统问题、监控安全事件的重要数据源。无论是排查服务崩溃、追踪登录失败,还是审计权限变更,事件日志都记录着关键的操作痕迹。传统的”事件查看器”图形界面虽然直观,但面对大规模日志筛选和批量分析时效率极低。

PowerShell 提供了强大的事件日志查询能力,可以像操作数据库一样对日志进行精确筛选和统计。本文将介绍如何使用 Get-WinEvent 高效查询事件日志,以及如何构建自动化的日志分析脚本。

阅读更多
PowerShell 技术 QQ 群