PowerShell 技能连载 - Windows 包管理自动化

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

在 Windows 上管理软件安装是运维工作中最繁琐的环节之一——每台服务器需要安装几十个工具和运行时,手动安装耗时且容易遗漏版本不一致。Windows Package Manager(winget)和 Chocolatey 的出现改变了这一局面,它们让 Windows 也拥有了类似 Linux apt-get / yum 的包管理体验。结合 PowerShell,可以实现软件的批量安装、版本锁定和自动更新。

本文将讲解 winget 和 Chocolatey 的 PowerShell 集成,以及如何构建标准化的软件清单。

阅读更多

PowerShell 技能连载 - 跨平台 PowerShell 实践

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

PowerShell 7 的跨平台能力是一个里程碑式的变化——同一套脚本语言可以在 Windows、Linux 和 macOS 上运行。对于管理混合环境的运维团队来说,这意味着只需学习一种语言就能管理所有平台。但跨平台并非”写一次到处运行”那么简单,不同操作系统的路径格式、包管理器、服务管理和服务发现机制都有差异。

本文将讲解跨平台 PowerShell 脚本的最佳实践,包括平台检测、路径处理、包管理适配和实用案例。

阅读更多

PowerShell 技能连载 - Just Enough Administration (JEA)

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

在传统运维中,给某人”重启服务”的权限,往往意味着给他管理员权限——而管理员权限能做远不止于此。JEA(Just Enough Administration)是微软提供的安全技术,它允许你精确控制用户可以在远程会话中执行哪些命令,无需授予管理员权限。这对于外包团队、初级运维和审计合规场景尤为重要。

本文将讲解 JEA 的核心概念、如何创建和部署 JEA 端点、角色能力的定义,以及生产环境中的最佳实践。

阅读更多

PowerShell 技能连载 - 文件与注册表 ACL 管理

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

Windows 的权限管理核心是访问控制列表(ACL,Access Control List)。无论是文件共享、网站目录还是注册表键,权限配置错误都可能导致数据泄露或服务中断。传统的 GUI 方式(右键→属性→安全)效率低下且容易遗漏,而 PowerShell 提供了完整的 ACL 管理能力,可以实现精确、可重复、可审计的权限配置。

本文将系统讲解 NTFS 文件权限和注册表权限的查看、修改、备份和批量管理。

阅读更多

PowerShell 技能连载 - 事件日志与系统监控

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

Windows 事件日志是故障排查的”黑匣子”——系统崩溃、应用异常、安全审计、服务启停,几乎所有重要事件都会被记录到事件日志中。对于运维人员来说,能够高效地查询、筛选和分析事件日志是一项必备技能。PowerShell 提供了 Get-WinEvent 命令,其过滤能力远超传统的事件查看器 GUI。

本文将讲解事件日志的查询技巧、自动化监控脚本、性能计数器采集,以及如何构建系统健康检查工具。

阅读更多

PowerShell 技能连载 - 远程管理进阶

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

在前面的文章中,我们介绍了 SSH 远程管理的基础用法。本文将深入 PowerShell 远程管理的进阶技巧,包括 WinRM 配置优化、会话管理、 constrained endpoints(受限端点)、远程调试,以及大规模并行远程操作的策略。

阅读更多

PowerShell 技能连载 - 网络编程与 REST API

适用于 PowerShell 5.1 及以上版本

在现代运维和自动化场景中,与 REST API 交互已成为 PowerShell 的核心能力之一——无论是调用云服务 API 管理 Azure/AWS 资源、与 GitHub/GitLab 交互管理代码仓库、对接企业内部的 ITSM 系统创建工单,还是查询第三方服务获取天气、汇率等数据,都离不开 HTTP 请求。PowerShell 内置的 Invoke-RestMethodInvoke-WebRequest 提供了强大且易用的 HTTP 客户端功能。

本文将从基础 HTTP 请求讲起,逐步深入到认证、JSON 处理、分页请求和错误重试等进阶话题。

阅读更多

PowerShell 技能连载 - 并行处理与 Runspace

适用于 PowerShell 5.1 及以上版本,ForEach-Object -Parallel 需要 PowerShell 7

PowerShell 默认是单线程顺序执行的——一个命令完成后再执行下一个。当需要处理数百台服务器、上千个文件或大量 API 请求时,串行执行的等待时间会线性增长。并行处理是解决这类性能瓶颈的关键手段,PowerShell 提供了多种并行方案,从简单到复杂依次为:Start-JobForEach-Object -Parallel、Runspace 池。

本文将对比这三种方案,并深入讲解 Runspace 池的高性能用法。

阅读更多

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