PowerShell 技能连载 - PowerShell Gallery 与模块管理

适用于 PowerShell 5.1 及以上版本

PowerShell 的强大很大程度上归功于其丰富的模块生态。PowerShell Gallery 是微软官方的模块仓库,目前托管了超过 4000 个模块,涵盖 Azure 管理、AWS 集成、安全审计、数据库操作等几乎所有领域。掌握模块的查找、安装、发布和版本管理,是每个 PowerShell 用户提升效率的必经之路。

本文将讲解 PowerShell Gallery 的使用技巧、模块的安装与更新策略、私有仓库搭建,以及如何发布自己的模块。

阅读更多

PowerShell 技能连载 - 数据可视化与图表

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

运维人员经常需要将系统指标、日志统计等数据以图表形式呈现,用于周报、容量规划或故障分析。虽然 Excel 和 Grafana 是常见的可视化工具,但 PowerShell 本身也具备生成图表的能力——通过 .NET 的 System.Windows.Forms.DataVisualization 命名空间或导出为 HTML/CSV 交由外部工具渲染,都能快速将数据转化为直观的图形。

本文将介绍如何使用 PowerShell 生成柱状图、折线图、饼图,以及如何将图表嵌入自动化报告。

阅读更多

PowerShell 技能连载 - WMI 与 CIM 查询

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

Windows Management Instrumentation(WMI)是 Windows 操作系统内置的管理信息基础设施,它以统一的接口暴露了硬件、操作系统、应用程序的海量信息——从 CPU 温度到磁盘健康状态,从进程列表到安装的补丁,几乎所有系统信息都可以通过 WMI 获取。PowerShell 通过 CIM(Common Information Model)cmdlet 提供了对 WMI 的现代化访问方式。

本文将系统讲解 WMI/CIM 的核心概念、查询语法、常用场景,以及如何构建高效的信息采集脚本。

阅读更多

PowerShell 技能连载 - Desired State Configuration

适用于 PowerShell 5.1 及以上版本(Windows),PowerShell 7 需安装 PSDesiredStateConfiguration 模块

在运维领域,”配置漂移”是一个永恒的痛点——服务器的实际状态随时间推移逐渐偏离预期配置,导致难以排查的故障和安全隐患。微软的 Desired State Configuration(DSC)正是为解决这个问题而设计的声明式配置管理框架。与 Ansible、Chef、Puppet 类似,DSC 让你用代码定义服务器”应该是什么样”,然后由系统自动确保配置一致。

本文将介绍 DSC 的核心概念、如何编写配置脚本、推拉两种工作模式,以及在 PowerShell 7 中使用 DSC 的注意事项。

阅读更多

PowerShell 技能连载 - SSH 远程管理

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

传统上,PowerShell 远程管理依赖 Windows 专属的 WinRM 协议和 Enter-PSSession 命令。但随着 PowerShell 7 的跨平台演进,以及混合云环境的普及,基于 SSH 的远程管理已成为官方推荐的新标准。SSH 不仅天然支持 Linux/macOS,还能在 Windows 上与 OpenSSH 无缝集成,实现真正的跨平台远程操作。

本文将从安装配置 OpenSSH 开始,逐步讲解如何通过 SSH 建立 PowerShell 远程会话、传输文件、执行远程命令,以及在生产环境中配置密钥认证和跳板机。

阅读更多

PowerShell 技能连载 - 脚本签名与执行策略

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

在企业环境中,PowerShell 是双刃剑:它既是运维人员最强大的自动化工具,也是攻击者最常滥用的攻击载体。从 Mimikatz 到勒索软件,大量恶意行为都依赖 PowerShell 执行。因此,微软提供了两层防护机制——执行策略(Execution Policy)代码签名(Code Signing),帮助组织控制哪些脚本可以运行、哪些脚本应该被拦截。

本文将系统讲解执行策略的各个级别与作用域、如何获取和使用代码签名证书对脚本进行签名、如何验证签名有效性,以及如何在团队中建立可落地的签名工作流。

阅读更多

PowerShell 技能连载 - 错误处理与日志最佳实践

适用于 PowerShell 7.0 及以上版本

在编写生产级 PowerShell 脚本时,错误处理和日志记录往往是最容易被忽视、却又最为关键的环节。一段没有错误处理的脚本,在遇到网络超时、文件缺失或权限不足时,要么静默失败导致后续逻辑产生难以排查的连锁错误,要么直接崩溃让整个自动化流程中断。而缺乏日志的脚本则如同”黑盒”——出了问题只能靠猜测,无法追溯根因。

PowerShell 提供了丰富的错误处理机制,从基础的 $ErrorActionPreference 到完善的 try/catch/finally 结构,再到自定义错误记录和结构化日志输出。本文将系统性地介绍这些机制,并给出带重试逻辑的健壮脚本模板,帮助你在生产环境中写出更可靠的自动化代码。

阅读更多
PowerShell 技术 QQ 群