PowerShell 技能连载 - Azure 虚拟机管理

适用于 PowerShell 5.1 及以上版本

Azure 虚拟机是云端基础设施的核心服务之一,运维团队日常需要频繁执行创建、启停、扩容和监控等操作。通过 Azure PowerShell 模块(Az.Compute),我们可以将这些操作脚本化,实现批量管理和自动化运维,大幅减少手动在门户点击的时间成本。

在生产环境中,虚拟机的生命周期管理远不止简单的开关机。你可能需要根据业务负载动态调整 VM 大小、批量检查所有虚拟机的运行状态、定期清理已解除分配的资源以节省费用。PowerShell 的管道机制和对象模型让这些批量操作变得异常简洁。

本文将演示如何使用 PowerShell 完成 Azure 虚拟机的创建、状态查询、规格调整和批量管理等常见任务,帮助你建立一套可复用的云端运维脚本库。

阅读更多

PowerShell 技能连载 - 自动化文档生成

适用于 PowerShell 5.1 及以上版本

在团队协作中,文档编写往往是最容易被忽略的一环。代码写完了,注释却迟迟没有补上;模块发布了,帮助文档还停留在初始版本。手动维护文档不仅耗时,而且容易与实际代码脱节。当 API 发生变更时,文档如果没有同步更新,就会误导使用者,甚至引发线上故障。

PowerShell 提供了丰富的元数据机制——从基于注释的帮助(Comment-Based Help)到 [CmdletBinding()] 属性中的参数定义,这些信息都可以被程序化地提取出来。结合 Markdown 模板引擎,我们完全可以用脚本自动生成格式统一、内容准确的文档,让代码与文档始终保持一致。

本文将介绍三种实用的自动化文档生成方案:基于注释帮助的函数文档提取、基于 AST 的代码结构分析,以及基于 JSON Schema 的配置文档自动生成。每种方案都附带可直接运行的示例代码和输出效果。

阅读更多

PowerShell 技能连载 - 内存管理与性能分析

适用于 PowerShell 5.1 及以上版本

PowerShell 脚本在处理大数据集、长时间运行的任务或复杂的对象管道时,内存消耗会快速增长。对象在管道中逐个传递,每个中间步骤都会产生新的 .NET 对象,而 .NET 的垃圾回收器(GC)并不总是能及时回收。理解 PowerShell 的内存模型和 GC 机制,对于编写高性能脚本至关重要。

本文将介绍内存诊断方法、GC 调优策略,以及减少内存占用的编码技巧。

阅读更多

PowerShell 技能连载 - IIS 管理自动化

适用于 PowerShell 5.1 及以上版本(Windows),需要 WebAdministration 模块

IIS(Internet Information Services)是 Windows Server 上的 Web 服务器角色,承载着企业内部的 Web 应用、API 服务和外部网站。在多站点环境中,手动管理 IIS 配置既繁琐又容易出错——创建网站、配置绑定、管理应用池、设置 SSL 证书,每个操作都需要反复点击 IIS 管理器。PowerShell 的 WebAdministration 模块将所有这些操作变成了可脚本化的命令,让 IIS 管理实现真正的自动化。

本文将介绍 IIS 的常用管理操作和批量自动化方案。

阅读更多

PowerShell 技能连载 - DNS 记录管理

适用于 PowerShell 5.1(Windows),需要 DnsServer 模块及管理员权限

在企业网络管理中,DNS 记录的维护是一项高频且容易出错的工作。当服务器迁移、应用上线或域名变更时,运维人员需要快速准确地添加、修改或删除 DNS 记录。手动操作 DNS 管理控制台不仅效率低下,还容易因为误操作导致服务中断。

Windows Server 自带的 DnsServer 模块提供了一整套 PowerShell cmdlet,能够以脚本化的方式管理 DNS 区域中的各类记录。结合 PowerShell 的管道和循环能力,我们可以实现批量操作、配置审计和自动化巡检,大幅提升运维效率和准确性。

本文将介绍如何使用 DnsServer 模块完成 DNS 记录的查询、创建、修改和删除操作,并提供批量管理的实用脚本模板。

阅读更多

PowerShell 技能连载 - DHCP 管理自动化

适用于 PowerShell 5.1(Windows),需要 DhcpServer 模块及管理员权限

在企业网络运维中,DHCP 服务是基础架构的核心组件之一。随着组织规模的增长,手动管理 DHCP 作用域、地址租约和保留记录不仅耗时,还容易出错。PowerShell 提供了 DhcpServer 模块,让运维人员可以通过脚本实现 DHCP 配置的批量管理和自动化巡检。

本文将介绍如何利用 PowerShell 进行 DHCP 服务器的日常管理操作,包括查询作用域信息、统计地址使用率、批量创建保留地址,以及导出配置报告。这些技巧可以帮助网络管理员减少重复劳动,提升管理效率和准确性。

所有示例都基于 Windows Server 内置的 DhcpServer 模块,需要在已加入域的环境中以管理员权限运行。如果你的管理工作站没有安装该模块,可以通过 Install-WindowsFeature RSAT-DHCP 来添加。

阅读更多

PowerShell 技能连载 - 证书管理

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

在 Windows 环境中,数字证书无处不在——HTTPS 网站加密、代码签名、文档签名、智能卡登录、VPN 认证等都离不开证书。日常运维中,我们经常需要查看证书有效期、导出证书、批量检查即将过期的证书,甚至通过脚本完成证书的申请和续签。

PowerShell 提供了强大的证书管理能力。通过 Cert: PSDrive,我们可以像操作文件系统一样浏览和管理 Windows 证书存储区。结合 .NET 的 System.Security.Cryptography.X509Certificates 命名空间,PowerShell 能够覆盖几乎所有的证书管理场景。本文将从查看、搜索、导出、续签检查等几个常见场景出发,介绍如何用 PowerShell 高效管理证书。

阅读更多

PowerShell 技能连载 - 文件系统监控

适用于 PowerShell 5.1 及以上版本

在文件服务器和开发环境中,监控文件变化是常见的需求:自动编译源代码变更、检测配置文件被篡改、审计共享文件夹的访问记录。.NET 的 FileSystemWatcher 类提供了操作系统级别的文件变更通知,不需要轮询扫描。结合 PowerShell 的事件处理机制,可以构建实时的文件监控和自动响应系统。

本文将介绍 FileSystemWatcher 的配置、事件处理和实际应用场景。

阅读更多

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

适用于 PowerShell 7.0 及以上版本(部分示例兼容 5.1)

随着服务器核心数增加和运维任务量增长,单线程处理已经无法满足效率需求。PowerShell 7 引入了 ForEach-Object -Parallel,让并行处理变得像管道一样简单。对于仍在使用 PowerShell 5.1 的环境,.NET 的 Runspace API 同样提供了强大的并行能力。合理使用并行处理,可以将原本需要数小时的任务缩短到几分钟。

本文将对比不同的并行方案,并给出实用的并行处理模式。

阅读更多

PowerShell 技能连载 - 模块开发实战

适用于 PowerShell 5.1 及以上版本

PowerShell 模块是代码复用的标准单元。将常用的函数封装为模块,不仅可以在不同脚本中轻松调用,还能方便地分享给团队成员或发布到 PowerShell Gallery。一个结构良好的模块包含清单文件(PSD1)、脚本模块(PSM1)、帮助文档和测试用例。掌握模块开发,是从”写脚本”到”做工程”的关键一步。

本文将介绍模块的创建、清单配置、打包发布的完整流程。

阅读更多
PowerShell 技术 QQ 群