PowerShell 技能连载 - 注册表管理

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

Windows 注册表是系统配置的核心存储——从系统服务配置到用户偏好,从已安装软件列表到启动项管理,几乎所有 Windows 配置都存储在注册表中。虽然图形界面提供了部分设置入口,但大量高级配置只能通过注册表修改。PowerShell 把注册表当作文件系统来处理,可以像操作文件一样读写注册表项和值。

本文将讲解注册表的操作技巧、常见配置管理场景,以及安全注意事项。

阅读更多

PowerShell 技能连载 - 日志记录模式

适用于 PowerShell 5.1 及以上版本

生产级脚本必须有可靠的日志记录——没有日志的脚本就像黑盒,出了问题无从排查。但”加个 Write-Host“和”设计一个日志系统”之间差距巨大。好的日志系统应该支持多级别输出、同时写文件和控制台、自动轮转、结构化格式,而且不影响脚本性能。

本文将讲解 PowerShell 中的日志记录模式,从简单到复杂,适用于不同规模的脚本和自动化场景。

阅读更多

PowerShell 技能连载 - 系统信息采集

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

系统信息采集是运维工作的基础——新服务器上架时的资产登记、故障排查时的环境确认、容量规划时的硬件盘点、合规审计时的配置核查。PowerShell 通过 CIM/WMI、.NET 类和注册表,可以获取几乎所有的系统信息:硬件配置、操作系统详情、网络设置、已安装软件、驱动版本等。

本文将讲解如何高效采集系统信息,并生成可用的资产报告。

阅读更多

PowerShell 技能连载 - XML 高级处理

适用于 PowerShell 5.1 及以上版本

虽然 JSON 已经成为现代应用配置的主流格式,但 XML 仍然在许多场景中扮演重要角色——Windows 配置文件(.config)、NuGet 包定义(.nuspec)、SOAP Web 服务、Office 文档(.docx/.xlsx 底层是 XML)、以及大量遗留系统的数据交换格式。PowerShell 通过 [xml] 类型加速器和 .NET 的 System.Xml 命名空间,提供了强大的 XML 处理能力。

本文将讲解 XML 文档的创建、查询(XPath)、修改,以及与常见 XML 格式的交互。

阅读更多

PowerShell 技能连载 - 环境变量管理

适用于 PowerShell 5.1 及以上版本

环境变量是操作系统级别的配置机制,几乎影响所有程序的行为——PATH 决定命令搜索路径、JAVA_HOME 指定 Java 运行时、HTTP_PROXY 配置代理。在运维场景中,合理管理环境变量可以控制程序行为、隔离开发/测试/生产环境配置、管理工具链路径。PowerShell 对环境变量的操作比 CMD 更加强大和直观。

本文将讲解 PowerShell 中环境变量的读取、设置、持久化,以及实用的配置管理技巧。

阅读更多

PowerShell 技能连载 - 异步编程模式

适用于 PowerShell 5.1 及以上版本,并行功能需要 PowerShell 7

运维脚本经常面临 IO 等待——网络请求、文件操作、数据库查询,这些操作的响应时间往往远超 CPU 处理时间。如果顺序执行 100 个 HTTP 健康检查,每个耗时 1 秒,总共需要 100 秒;但如果并发执行,可能只需要几秒。PowerShell 提供了多种异步编程机制:后台作业(Jobs)、运行空间(Runspaces)、ForEach-Object -Parallel、以及 .NET 的异步 API。

本文将讲解 PowerShell 中的异步编程模式及其适用场景。

阅读更多

PowerShell 技能连载 - 管道高级技巧

适用于 PowerShell 5.1 及以上版本

管道(Pipeline)是 PowerShell 最核心的设计理念——不同于 Unix Shell 的文本管道,PowerShell 传递的是完整的 .NET 对象。这意味着管道中的每个命令都可以访问对象的属性和方法,无需正则表达式解析。然而,很多用户只停留在 | Format-Table 的层面,不了解管道的流式处理特性、自定义管道函数、管道变量等高级功能。

本文将深入讲解 PowerShell 管道的高级技巧和性能优化。

阅读更多

PowerShell 技能连载 - 日期时间高级操作

适用于 PowerShell 5.1 及以上版本

日期时间处理在运维脚本中无处不在——日志时间戳解析、定时任务调度、报表周期计算、服务运行时间监控、跨时区协作。PowerShell 基于 .NET 的 DateTimeTimeSpan 类型,提供了丰富的时间操作能力。但时区转换、UTC 处理、文化格式化等场景容易出错,需要掌握一些关键技巧。

本文将讲解 PowerShell 中日期时间的高级操作和常见陷阱。

阅读更多

PowerShell 技能连载 - 字符串操作进阶

适用于 PowerShell 5.1 及以上版本

字符串处理是脚本语言最核心的能力之一。虽然 PowerShell 的字符串基础操作大家都会,但很多高效技巧并不为人熟知——比如 -f 格式化操作符、多行 Here-String 的高级用法、StringBuilder 的大批量拼接、编码转换、Base64 处理等。掌握这些进阶技巧,可以大幅简化文本处理任务。

本文将讲解 PowerShell 字符串操作的高级技巧和实用场景。

阅读更多

PowerShell 技能连载 - 类型加速器与 .NET 互操作

适用于 PowerShell 5.1 及以上版本

PowerShell 构建在 .NET 之上,这意味着你可以直接使用 .NET 的全部类库——从文件操作到加密算法,从网络编程到并行处理。但很多用户不知道的是,PowerShell 提供了大量”类型加速器”(Type Accelerator),让你可以用简短的名称代替冗长的命名空间路径。比如 [xml] 实际上是 [System.Xml.XmlDocument][mailaddress][System.Net.Mail.MailAddress]

本文将讲解常用的类型加速器、.NET 类的直接调用,以及一些通过 .NET 互操作实现的高级功能。

阅读更多
PowerShell 技术 QQ 群