PowerShell 技能连载 - 系统性能监控实战

适用于 PowerShell 7.0 及以上版本

在服务器运维和 DevOps 实践中,系统性能监控是保障业务稳定运行的基石。无论是排查突发的性能抖动,还是进行容量规划和趋势分析,都需要一套可靠的监控手段。传统的 GUI 工具(如任务管理器、perfmon)虽然直观,但不适合自动化场景和大规模服务器管理。

PowerShell 提供了对 WMI/CIM 类、.NET 性能计数器和系统 API 的完整访问能力,让我们可以用脚本化的方式采集、分析和导出系统性能数据。本文将介绍如何使用 PowerShell 构建一套实用的系统性能监控方案,涵盖 CPU、内存、磁盘、进程、网络等关键指标。

阅读更多

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 技术 QQ 群