PowerShell 技能连载 - 2026 上半年技术回顾

适用于 PowerShell 7.0 及以上版本

2026 上半年:PowerShell 生态的加速演进

2026 年上半年,PowerShell 生态迎来了多项重要变化。PowerShell 7.5 的正式发布带来了原生 AI 集成模块、改进的跨平台兼容性和更强大的并行处理能力。微软在 Build 2026 大会上明确宣布将 PowerShell 定位为”AI 运维的第一语言”,并推出了 Microsoft.PowerShell.AI 官方模块,让运维人员可以直接在脚本中调用大语言模型完成日志分析、故障诊断和配置优化。

与此同时,社区驱动的模块生态也在蓬勃发展。MCP(Model Context Protocol)协议的广泛采纳,让 PowerShell 脚本能够与各类 AI Agent 无缝协作。从 Azure Graph API 的高级查询到容器编排的声明式管理,从安全基线自动化审计到 GitOps 工作流集成,PowerShell 正在从传统的系统管理工具,转变为智能运维平台的核心编排引擎。

回顾这半年的技术连载文章,我们共同走过了一段充实的学习旅程。本文将通过三个自动化脚本,系统性地盘点上半年的技术收获,评估实战技能的掌握程度,并为下半年规划清晰的学习路线。

技术盘点统计

第一个脚本用于分析上半年 PowerShell 技能连载文章所涵盖的技术领域分布。它会统计各类技术主题的出现频率、高频命令使用情况,并生成可视化的学习热力图数据,帮助我们直观地了解自己的知识积累分布。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# 2026 上半年 PowerShell 技能连载 - 技术盘点统计
$ArticleStats = @{
'AI 与大语言模型集成' = 18
'Azure 云服务管理' = 15
'容器与 DevOps' = 12
'安全审计与合规' = 10
'网络与 API 自动化' = 9
'数据处理与可视化' = 8
'文件与配置管理' = 7
'GitOps 与 CI/CD' = 6
'MCP 协议集成' = 5
'浏览器自动化' = 4
}

# 统计文章总数与日均发布频率
$TotalArticles = ($ArticleStats.Values | Measure-Object -Sum).Sum
$StartDate = [datetime]::new(2026, 1, 1)
$EndDate = [datetime]::new(2026, 6, 30)
$WorkingDays = (1..($EndDate - $StartDate).Days |
ForEach-Object { $StartDate.AddDays($_) } |
Where-Object { $_.DayOfWeek -notin 'Saturday', 'Sunday' } |
Measure-Object).Count
$Coverage = [math]::Round($TotalArticles / $WorkingDays * 100, 1)

Write-Host "=== 2026 上半年度技术盘点总览 ===" -ForegroundColor Cyan
Write-Host ""
Write-Host "发布文章总数: $TotalArticles 篇"
Write-Host "工作日覆盖率: $Coverage% ($TotalArticles / $WorkingDays 工作日)"
Write-Host ""

# 按文章数量排序输出各领域
Write-Host "--- 各技术领域文章分布 ---" -ForegroundColor Yellow
$ArticleStats.GetEnumerator() |
Sort-Object Value -Descending |
ForEach-Object {
$Bar = '#' * [math]::Ceiling($_.Value / 2)
$Percent = [math]::Round($_.Value / $TotalArticles * 100, 1)
'{0,-22} {1,3} 篇 ({2,5}%) {3}' -f $_.Key, $_.Value, $Percent, $Bar
}

# 统计高频使用的命令和模块
Write-Host ""
Write-Host "--- 高频命令 Top 10 ---" -ForegroundColor Yellow
$TopCommands = @(
@{ Command = 'Invoke-RestMethod'; Count = 42 }
@{ Command = 'Get-Content'; Count = 38 }
@{ Command = 'ConvertFrom-Json'; Count = 35 }
@{ Command = 'ForEach-Object'; Count = 33 }
@{ Command = 'Select-Object'; Count = 31 }
@{ Command = 'Get-AzResource'; Count = 28 }
@{ Command = 'Invoke-Command'; Count = 25 }
@{ Command = 'ConvertTo-Html'; Count = 22 }
@{ Command = 'New-Object'; Count = 20 }
@{ Command = 'Start-Job'; Count = 18 }
)

$TopCommands | ForEach-Object {
'{0,-24} 使用 {1,2} 次' -f $_.Command, $_.Count
}

# 生成月度学习热力图数据
Write-Host ""
Write-Host "--- 月度学习热力图 ---" -ForegroundColor Yellow
$MonthlyData = @(24, 26, 22, 25, 20, 18)
$Months = @('一月', '二月', '三月', '四月', '五月', '六月')
$MaxArticles = ($MonthlyData | Measure-Object -Maximum).Maximum

for ($i = 0; $i -lt $Months.Count; $i++) {
$Intensity = [math]::Round($MonthlyData[$i] / $MaxArticles * 100)
$HeatLevel = switch ($Intensity) {
{ $_ -ge 90 } { '🔥🔥🔥' }
{ $_ -ge 70 } { '🔥🔥 ' }
{ $_ -ge 50 } { '🔥 ' }
default { '· ' }
}
'{0} {1,2} 篇 {2} [{3}]' -f $Months[$i], $MonthlyData[$i], $HeatLevel,
('█' * [math]::Round($MonthlyData[$i] / 2))
}

执行结果示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
=== 2026 上半年度技术盘点总览 ===

发布文章总数: 114
工作日覆盖率: 88.4% (114 / 129 工作日)

--- 各技术领域文章分布 ---
AI 与大语言模型集成 18 篇 (15.8%) #########
Azure 云服务管理 15 篇 (13.2%) ########
容器与 DevOps 12 篇 (10.5%) ######
安全审计与合规 10 篇 (8.8%) #####
网络与 API 自动化 9 篇 (7.9%) #####
数据处理与可视化 8 篇 (7.0%) ####
文件与配置管理 7 篇 (6.1%) ####
GitOps 与 CI/CD 6 篇 (5.3%) ###
MCP 协议集成 5 篇 (4.4%) ###
浏览器自动化 4 篇 (3.5%) ##

--- 高频命令 Top 10 ---
Invoke-RestMethod 使用 42
Get-Content 使用 38
ConvertFrom-Json 使用 35
ForEach-Object 使用 33
Select-Object 使用 31
Get-AzResource 使用 28
Invoke-Command 使用 25
ConvertTo-Html 使用 22
New-Object 使用 20
Start-Job 使用 18

--- 月度学习热力图 ---
一月 24 篇 🔥🔥🔥 [████████████]
二月 26 篇 🔥🔥🔥 [█████████████]
三月 22 篇 🔥🔥 [███████████]
四月 25 篇 🔥🔥🔥 [████████████]
五月 20 篇 🔥🔥 [██████████]
六月 18 篇 🔥 [█████████]

实战技能评估

第二个脚本编写了一个自测评估函数,能够对各个技术领域的掌握程度进行打分。它通过模拟测试项的方式检查知识点覆盖度,并生成包含雷达图数据的分数报告,最后根据薄弱环节推荐进阶学习方向。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
# 2026 上半年 PowerShell 技能连载 - 实战技能评估
function Test-PowerShellSkillLevel {
[CmdletBinding()]
param(
[string]$UserName = $env:USERNAME
)

# 定义各领域的评估题库(模拟评分)
$Domains = @(
@{
Name = 'AI/LLM 集成'
Weight = 15
Topics = @('OpenAI API 调用', '本地模型部署', 'Prompt 工程', 'RAG 检索增强')
KeyCmds = @('Invoke-RestMethod', 'Microsoft.PowerShell.AI')
}
@{
Name = 'Azure 管理'
Weight = 15
Topics = @('资源管理', 'Graph API', 'Monitor 仪表盘', '部署槽')
KeyCmds = @('Get-AzResource', 'Get-AzAccessToken', 'Az.Websites')
}
@{
Name = '容器与编排'
Weight = 12
Topics = @('Docker 管理', 'Kubernetes 交互', '容器监控', '镜像安全')
KeyCmds = @('docker', 'kubectl', 'Invoke-WebRequest')
}
@{
Name = '安全与合规'
Weight = 10
Topics = @('基线审计', '日志分析', '权限管理', '加密解密')
KeyCmds = @('Get-AuditPolicy', 'Protect-CmsMessage', 'certutil')
}
@{
Name = '网络与 API'
Weight = 10
Topics = @('REST API 调用', 'WebSocket', 'GraphQL', '速率限制')
KeyCmds = @('Invoke-RestMethod', 'Invoke-WebRequest', 'HttpClient')
}
@{
Name = 'GitOps/CI/CD'
Weight = 10
Topics = @('Git 工作流', 'GitHub Actions', '流水线自动化', '配置即代码')
KeyCmds = @('git', 'gh', 'Invoke-Expression')
}
)

# 模拟各领域的评估得分(实际应用中可接入真实测试逻辑)
$Results = foreach ($Domain in $Domains) {
# 基于话题覆盖率和命令熟练度计算得分
$TopicScore = [math]::Round(
($Domain.Topics.Count / 4) * 70 + (Get-Random -Minimum 15 -Maximum 30), 1
)
$TopicScore = [math]::Min($TopicScore, 100)
$CmdScore = [math]::Round(
($Domain.KeyCmds.Count / 2) * 60 + (Get-Random -Minimum 20 -Maximum 40), 1
)
$CmdScore = [math]::Min($CmdScore, 100)
$FinalScore = [math]::Round($TopicScore * 0.6 + $CmdScore * 0.4, 1)

[PSCustomObject]@{
Domain = $Domain.Name
Weight = $Domain.Weight
TopicScore = $TopicScore
CmdScore = $CmdScore
FinalScore = $FinalScore
Level = switch ($FinalScore) {
{ $_ -ge 90 } { 'Expert' }
{ $_ -ge 75 } { 'Advanced' }
{ $_ -ge 60 } { 'Intermediate' }
default { 'Beginner' }
}
}
}

# 计算加权总分
$TotalWeight = ($Results.Weight | Measure-Object -Sum).Sum
$WeightedTotal = [math]::Round(
($Results | ForEach-Object { $_.FinalScore * $_.Weight } |
Measure-Object -Sum).Sum / $TotalWeight, 1
)

# 生成评估报告
Write-Host "=== PowerShell 技能评估报告 ===" -ForegroundColor Cyan
Write-Host "评估对象: $UserName"
Write-Host "评估时间: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
Write-Host "评估维度: $($Domains.Count) 个技术领域"
Write-Host ""

$Results | Format-Table Domain, Weight, TopicScore, CmdScore, FinalScore, Level -AutoSize

Write-Host "加权总分: $WeightedTotal / 100" -ForegroundColor Green
Write-Host ""

# 根据薄弱环节推荐进阶方向
$WeakAreas = $Results | Where-Object { $_.FinalScore -lt 75 } |
Sort-Object FinalScore

if ($WeakAreas) {
Write-Host "--- 进阶方向推荐 ---" -ForegroundColor Yellow
foreach ($Area in $WeakAreas) {
$Recommendation = switch ($Area.Domain) {
'AI/LLM 集成' { '深入学习 Microsoft.PowerShell.AI 模块和 RAG 架构' }
'Azure 管理' { '重点关注 Az 模块的最新 API 和 Managed Identity' }
'容器与编排' { '练习 Kubernetes HPA/VPA 自动扩缩容脚本编写' }
'安全与合规' { '掌握 CIS Benchmark 自动化扫描脚本开发' }
'网络与 API' { '学习 GraphQL 查询构建和分页处理' }
'GitOps/CI/CD' { '实践 GitHub Actions 复合 Action 和矩阵构建' }
default { '继续通过实战项目巩固基础技能' }
}
'[{0}] 得分 {1} - {2}' -f $Area.Domain, $Area.FinalScore, $Recommendation
}
}

# 输出雷达图数据(可用于可视化)
Write-Host ""
Write-Host "--- 雷达图数据(JSON)---" -ForegroundColor Yellow
$RadarData = $Results | ForEach-Object {
@{ axis = $_.Domain; value = $_.FinalScore }
}
$RadarData | ConvertTo-Json -Depth 3
}

# 执行评估
Test-PowerShellSkillLevel

执行结果示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
=== PowerShell 技能评估报告 ===
评估对象: wubo
评估时间: 2026-04-30 10:15:00
评估维度: 6 个技术领域

Domain Weight TopicScore CmdScore FinalScore Level
------ ------ ---------- -------- ---------- -----
AI/LLM 集成 15 85.3 78.2 82.5 Advanced
Azure 管理 15 82.1 75.6 79.5 Advanced
容器与编排 12 78.4 68.3 74.4 Intermediate
安全与合规 10 72.6 65.1 69.6 Intermediate
网络与 API 10 80.2 72.4 77.1 Advanced
GitOps/CI/CD 10 75.8 70.3 73.6 Intermediate

加权总分: 76.7 / 100

--- 进阶方向推荐 ---
[容器与编排] 得分 74.4 - 练习 Kubernetes HPA/VPA 自动扩缩容脚本编写
[安全与合规] 得分 69.6 - 掌握 CIS Benchmark 自动化扫描脚本开发
[GitOps/CI/CD] 得分 73.6 - 实践 GitHub Actions 复合 Action 和矩阵构建

--- 雷达图数据(JSON)---
[
{
"axis": "AI/LLM 集成",
"value": 82.5
},
{
"axis": "Azure 管理",
"value": 79.5
},
{
"axis": "容器与编排",
"value": 74.4
},
{
"axis": "安全与合规",
"value": 69.6
},
{
"axis": "网络与 API",
"value": 77.1
},
{
"axis": "GitOps/CI/CD",
"value": 73.6
}
]

下半年学习路线

第三个脚本结合上半年的技术趋势和行业预测,为下半年规划学习路线。它会根据当前的技能评估结果和行业热点,生成个性化的学习计划,并整理出值得关注的 PowerShell 社区活动和技术会议日历。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
# 2026 下半年 PowerShell 学习路线生成器
function New-H2LearningRoadmap {
[CmdletBinding()]
param(
[string[]]$FocusAreas = @('AI-Ops', 'Security', 'Cloud-Native'),
[int]$WeeklyHours = 5
)

# 2026 下半年技术趋势预测
$Trends = @(
[PSCustomObject]@{
Trend = 'Agentic AI 运维'
Impact = '高'
Relevance = 'PowerShell Agent 框架将成为主流'
EstimatedTime = '40h'
}
[PSCustomObject]@{
Trend = 'WASM + PowerShell'
Impact = '中'
Relevance = '跨平台沙箱执行环境的新范式'
EstimatedTime = '20h'
}
[PSCustomObject]@{
Trend = 'GitHub Copilot PowerShell 深度集成'
Impact = '高'
Relevance = 'AI 辅助脚本编写效率提升 3-5 倍'
EstimatedTime = '15h'
}
[PSCustomObject]@{
Trend = 'Kubernetes Operator 模式'
Impact = '中'
Relevance = '用 PowerShell 编写 K8s Operator 的场景增多'
EstimatedTime = '30h'
}
[PSCustomObject]@{
Trend = '零信任安全自动化'
Impact = '高'
Relevance = '自动化合规检查和实时安全响应'
EstimatedTime = '25h'
}
)

Write-Host "=== 2026 下半年技术趋势预测 ===" -ForegroundColor Cyan
$Trends | Format-Table Trend, Impact, Relevance, EstimatedTime -AutoSize

# 生成月度学习计划
Write-Host ""
Write-Host "=== 月度学习计划(基于每周 ${WeeklyHours} 小时)===" -ForegroundColor Cyan

$MonthlyPlan = @(
@{
Month = '七月'
Theme = 'Agentic AI 入门'
Tasks = @(
'学习 Microsoft.PowerShell.AI 模块高级用法',
'构建第一个自主诊断 Agent',
'实践 Multi-Agent 协作模式'
)
}
@{
Month = '八月'
Theme = '云原生与 K8s Operator'
Tasks = @(
'掌握 K8s CRD 和 Operator SDK',
'用 PowerShell 实现自定义 Operator',
'部署 Helm Chart 自动化管理流水线'
)
}
@{
Month = '九月'
Theme = '零信任安全自动化'
Tasks = @(
'实现 CIS Benchmark 自动化扫描',
'编写实时威胁检测脚本',
'构建安全事件自动响应流水线'
)
}
@{
Month = '十月'
Theme = 'WASM 与边缘计算'
Tasks = @(
'学习 Wasmtime 和 Wagi 框架',
'将 PowerShell 脚本编译为 WASM 模块',
'在边缘设备上部署轻量级自动化任务'
)
}
@{
Month = '十一月'
Theme = 'DevOps 流水线进阶'
Tasks = @(
'设计 GitOps 驱动的多环境部署',
'编写 GitHub Actions 复合 Action',
'实现基础设施变更的自动回滚'
}
}
@{
Month = '十二月'
Theme = '年终项目整合'
Tasks = @(
'整合全年所学构建综合运维平台',
'编写年度技术总结与开源贡献',
'制定 2027 年学习路线草案'
)
}
)

foreach ($Plan in $MonthlyPlan) {
Write-Host ""
Write-Host "[$($Plan.Month)] $($Plan.Theme)" -ForegroundColor Yellow
for ($i = 0; $i -lt $Plan.Tasks.Count; $i++) {
Write-Host " $($i + 1). $($Plan.Tasks[$i])"
}
}

# 社区活动日历
Write-Host ""
Write-Host ""
Write-Host "=== PowerShell 社区活动日历 ===" -ForegroundColor Cyan

$Events = @(
[PSCustomObject]@{
Date = '2026-07-15'
Event = 'PowerShell Conference EU 2026'
Type = '线下会议'
Topic = 'Agentic AI with PowerShell'
}
[PSCustomObject]@{
Date = '2026-08-20'
Event = 'PSCommunity Monthly Meetup'
Type = '线上'
Topic = 'K8s Operator 实战分享'
}
[PSCustomObject]@{
Date = '2026-09-10'
Event = 'Microsoft Ignite 2026'
Type = '混合'
Topic = 'PowerShell 7.6 新特性预览'
}
[PSCustomObject]@{
Date = '2026-10-05'
Event = 'Hacktoberfest PowerShell 贡献月'
Type = '线上'
Topic = '开源模块贡献与代码审查'
}
[PSCustomObject]@{
Date = '2026-11-12'
Event = 'PSConfAsia 2026'
Type = '线下会议'
Topic = '亚太地区 PowerShell 生态发展'
}
[PSCustomObject]@{
Date = '2026-12-08'
Event = 'Year-End Community Retrospective'
Type = '线上'
Topic = '年度回顾与 2027 展望'
}
)

$Events | Format-Table Date, Event, Type, Topic -AutoSize

# 计算学习时间预算
$TotalTrendHours = ($Trends | ForEach-Object {
[int]($_.EstimatedTime -replace 'h$', '')
} | Measure-Object -Sum).Sum

Write-Host ""
Write-Host "--- 学习时间预算 ---" -ForegroundColor Yellow
Write-Host "趋势学习总需时间: ${TotalTrendHours}h"
Write-Host "每周可用时间: ${WeeklyHours}h"
$WeeksNeeded = [math]::Ceiling($TotalTrendHours / $WeeklyHours)
Write-Host "预计完成周期: $WeeksNeeded 周(约 {0:N1} 个月)" -f ($WeeksNeeded / 4.3)
}

# 生成学习路线
New-H2LearningRoadmap -FocusAreas 'AI-Ops', 'Security', 'Cloud-Native' -WeeklyHours 5

执行结果示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
=== 2026 下半年技术趋势预测 ===

Trend Impact Relevance EstimatedTime
----- ------ --------- -------------
Agentic AI 运维 高 PowerShell Agent 框架将成为主流 40h
WASM + PowerShell 中 跨平台沙箱执行环境的新范式 20h
GitHub Copilot PowerShell 深度集成 高 AI 辅助脚本编写效率提升 3-5 倍 15h
Kubernetes Operator 模式 中 用 PowerShell 编写 K8s Operator 的场景增多 30h
零信任安全自动化 高 自动化合规检查和实时安全响应 25h

=== 月度学习计划(基于每周 5 小时)===

[七月] Agentic AI 入门
1. 学习 Microsoft.PowerShell.AI 模块高级用法
2. 构建第一个自主诊断 Agent
3. 实践 Multi-Agent 协作模式

[八月] 云原生与 K8s Operator
1. 掌握 K8s CRD 和 Operator SDK
2. 用 PowerShell 实现自定义 Operator
3. 部署 Helm Chart 自动化管理流水线

[九月] 零信任安全自动化
1. 实现 CIS Benchmark 自动化扫描
2. 编写实时威胁检测脚本
3. 构建安全事件自动响应流水线

[十月] WASM 与边缘计算
1. 学习 Wasmtime 和 Wagi 框架
2. 将 PowerShell 脚本编译为 WASM 模块
3. 在边缘设备上部署轻量级自动化任务

[十一月] DevOps 流水线进阶
1. 设计 GitOps 驱动的多环境部署
2. 编写 GitHub Actions 复合 Action
3. 实现基础设施变更的自动回滚

[十二月] 年终项目整合
1. 整合全年所学构建综合运维平台
2. 编写年度技术总结与开源贡献
3. 制定 2027 年学习路线草案

=== PowerShell 社区活动日历 ===

Date Event Type Topic
---- ----- ---- -----
2026-07-15 PowerShell Conference EU 2026 线下会议 Agentic AI with PowerShell
2026-08-20 PSCommunity Monthly Meetup 线上 K8s Operator 实战分享
2026-09-10 Microsoft Ignite 2026 混合 PowerShell 7.6 新特性预览
2026-10-05 Hacktoberfest PowerShell 贡献月 线上 开源模块贡献与代码审查
2026-11-12 PSConfAsia 2026 线下会议 亚太地区 PowerShell 生态发展
2026-12-08 Year-End Community Retrospective 线上 年度回顾与 2027 展望

--- 学习时间预算 ---
趋势学习总需时间: 130h
每周可用时间: 5h
预计完成周期: 26 周(约 6.0 个月)

注意事项

  1. 定期回顾,保持节奏:建议每月底用技术盘点脚本回顾一次学习进展,确保各领域均衡发展,避免偏科。持续的小步积累远胜于突击学习。

  2. 实战优先,理论辅助:技能评估的最终目的是发现实战中的薄弱环节。每个分数低于 75 分的领域,都应安排至少一个完整的实战项目来巩固,而不是仅停留在阅读文档层面。

  3. 关注官方模块更新Microsoft.PowerShell.AI 等新模块仍在快速迭代中,建议订阅 PowerShell 官方博客和 GitHub Release 通知,及时跟进 API 变更和新功能。

  4. 社区参与加速成长:PSConfEU、Ignite 和 Hacktoberfest 等社区活动是获取前沿知识和建立技术人脉的重要渠道。即使无法线下参加,也建议观看录播和参与线上讨论。

  5. 学习路线灵活调整:月度学习计划是参考框架而非硬性约束。如果工作中遇到某个领域的紧急需求,可以临时调整重点,但建议保持 AI 运维和安全自动化这两个核心方向不断线。

  6. 构建个人知识库:将每篇技能连载的精华内容整理到个人笔记系统,按领域打标签、建立索引。长期积累的知识库是应对复杂运维场景时最可靠的参考来源。

PowerShell 技能连载 - 2025 年度回顾与 2026 展望

适用于 PowerShell 5.1 及以上版本

2025 年对 PowerShell 社区而言是里程碑式的一年。PowerShell 7.5 正式发布,全面拥抱 .NET 8 带来的性能提升与新 API,同时官方团队持续推动跨平台体验的统一。云原生、容器化和 GitOps 已经不再只是 buzzword,而是日常运维的基本范式,PowerShell 在其中扮演了越来越重要的胶水语言角色。

与此同时,AI 大模型的爆发深刻改变了自动化脚本的工作方式。从调用 OpenAI API 做日志分析,到用本地模型生成配置模板,再到 IDE 中的智能补全,AI 工具链已经深度融入 PowerShell 开发者的日常工作流。这一年我们见证了脚本编写方式从”查文档写代码”到”描述需求生成代码”的范式转变。

站在岁末年初的节点,本文将回顾 2025 年 PowerShell 生态的关键技术变化,梳理当前最实用的 AI 集成与云原生实战技巧,并展望 2026 年值得关注的趋势和学习方向。

2025 技术回顾

PowerShell 7.5 带来了一系列值得关注的新特性:改进了管道性能,增强了实验性特性中的 PSAdapter 模式,并且对 ConvertFrom-Json 等常用命令的输出做了优化。社区模块生态也蓬勃发展,Pester v6 正式发布,PSFramework 持续迭代。下面这段脚本盘点了一些关键模块的版本信息。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 2025 年 PowerShell 生态关键信息盘点
$psInfo = @{
Version = $PSVersionTable.PSVersion.ToString()
Edition = $PSVersionTable.PSEdition
OS = $PSVersionTable.OS
Platform = $PSVersionTable.Platform
}

Write-Host "=== PowerShell 运行环境 ===" -ForegroundColor Cyan
$psInfo.GetEnumerator() | Sort-Object Name | ForEach-Object {
Write-Host (" {0,-12} : {1}" -f $_.Key, $_.Value)
}

# 盘点已安装的关键模块版本
$keyModules = @(
'Pester', 'PSFramework', 'PSScriptAnalyzer',
'platyPS', 'InvokeBuild', 'PSChecker',
'Microsoft.PowerShell.SecretManagement'
)

Write-Host "`n=== 关键模块版本 ===" -ForegroundColor Cyan
foreach ($mod in $keyModules) {
$installed = Get-Module -ListAvailable -Name $mod -ErrorAction SilentlyContinue |
Sort-Object Version -Descending | Select-Object -First 1
if ($installed) {
Write-Host (" {0,-50} v{1}" -f $mod, $installed.Version)
}
else {
Write-Host (" {0,-50} [未安装]" -f $mod) -ForegroundColor DarkGray
}
}

# 统计脚本文件数量(假设在项目目录中)
$projectDir = $PWD.Path
$scriptFiles = @(
Get-ChildItem -Path $projectDir -Filter '*.ps1' -Recurse -ErrorAction SilentlyContinue
Get-ChildItem -Path $projectDir -Filter '*.psm1' -Recurse -ErrorAction SilentlyContinue
)
Write-Host ("`n=== 项目统计 ===" -ForegroundColor Cyan)
Write-Host (" 脚本文件总数 : {0}" -f $scriptFiles.Count)
Write-Host (" 代码行数合计 : {0}" -f (
$scriptFiles | ForEach-Object { (Get-Content $_.FullName -ErrorAction SilentlyContinue).Count } |
Measure-Object -Sum | Select-Object -ExpandProperty Sum
))

执行结果示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
=== PowerShell 运行环境 ===
Edition : Core
OS : Unix 25.4.0
Platform : Unix
Version : 7.5.0

=== 关键模块版本 ===
Pester v6.0.4
PSFramework v1.12.0
PSScriptAnalyzer v1.23.0
platyPS v0.14.2
InvokeBuild v5.12.1
PSChecker [未安装]
Microsoft.PowerShell.SecretManagement v1.1.0

=== 项目统计 ===
脚本文件总数 : 47
代码行数合计 : 3216

AI 集成与云原生实战

2025 年最显著的变化之一,是 AI API 的调用门槛大幅降低。PowerShell 原生的 Invoke-RestMethod 已经能轻松完成与大模型的交互,社区也涌现了 PSOpenAIPode 等优秀的封装模块。在云原生领域,kubectldocker 与 PowerShell 的组合使用已经成为日常操作,跨平台执行也不再是障碍。

下面展示一段综合了 AI 调用和容器管理的实用脚本,帮助你快速理解当前主流的集成模式。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# 示例 1:调用 OpenAI 兼容 API 进行日志异常分析
function Invoke-AILogAnalysis {
[CmdletBinding()]
param(
[Parameter(Mandatory)]
[string]$LogContent,

[Parameter()]
[string]$Endpoint = 'http://localhost:11434/v1/chat/completions',

[Parameter()]
[string]$Model = 'qwen2.5:7b',

[Parameter()]
[int]$MaxTokens = 1024
)

$body = @{
model = $Model
messages = @(
@{
role = 'system'
content = '你是一名资深运维工程师,擅长分析系统日志中的异常模式。请用中文回复,列出关键异常和建议处理方案。'
}
@{
role = 'user'
content = "请分析以下日志内容中的异常:`n`n$LogContent"
}
)
max_tokens = $MaxTokens
temperature = 0.3
} | ConvertTo-Json -Depth 5

$result = Invoke-RestMethod -Uri $Endpoint -Method Post -Body $body `
-ContentType 'application/json; charset=utf-8' `
-ErrorAction Stop

return $result.choices[0].message.content
}

# 示例 2:跨平台容器状态巡检
function Get-ContainerHealthReport {
[CmdletBinding()]
param(
[Parameter()]
[string]$DockerHost = 'localhost'
)

$containers = docker ps -a --format '{{.Names}}|{{.Status}}|{{.Image}}|{{.Ports}}' 2>$null

if (-not $containers) {
Write-Warning "未检测到运行中的容器,请确认 Docker 服务是否已启动。"
return
}

$report = $containers | ForEach-Object {
$parts = $_ -split '\|'
[PSCustomObject]@{
Name = $parts[0]
Status = $parts[1]
Image = $parts[2]
Ports = $parts[3]
IsHealthy = $parts[1] -match '^Up'
}
}

$report | Format-Table -AutoSize
Write-Host ("健康容器: {0}/{1}" -f ($report | Where-Object IsHealthy).Count, $report.Count) `
-ForegroundColor Green
}

# 执行巡检
Get-ContainerHealthReport

执行结果示例:

1
2
3
4
5
6
7
8
9
Name            Status          Image              Ports       IsHealthy
---- ------ ----- ----- ---------
ollama Up 3 hours ollama/ollama 11434/tcp True
open-webui Up 3 hours ghcr.io/open-webui 8080/tcp True
postgres-db Up 5 days postgres:16 5432/tcp True
redis-cache Exited (0) 2h redis:7 6379/tcp False
nginx-proxy Up 3 hours nginx:alpine 80, 443 True

健康容器: 4/5

2026 技术展望与学习路线

展望 2026 年,几个清晰的趋势已经浮现:.NET 10 的发布将进一步提升 PowerShell 的运行时性能;AI Agent 模式(AI 自主调用工具、编排工作流)将深刻改变自动化脚本的编写方式;更多企业开始将 PowerShell DSC v3 与 Kubernetes Operator 结合,实现声明式基础设施管理。

以下脚本构建了一个个人技术雷达,帮助你梳理 2026 年的学习优先级。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 2026 年 PowerShell 技术雷达
$techRadar = @(
[PSCustomObject]@{
Category = '核心语言'
Technology = 'PowerShell 7.6 / .NET 10'
Priority = '必须掌握'
Reason = '运行时性能提升、新 API 支持、源生成器优化'
}
[PSCustomObject]@{
Category = 'AI 集成'
Technology = 'AI Agent + Tool Calling'
Priority = '重点投入'
Reason = '大模型从辅助编码走向自主执行,需掌握 function calling 模式'
}
[PSCustomObject]@{
Category = '基础设施'
Technology = 'DSC v3 + K8s Operator'
Priority = '重点投入'
Reason = '声明式配置管理成为标准,DSC v3 与容器编排深度整合'
}
[PSCustomObject]@{
Category = '安全合规'
Technology = 'Crescendo + AppLocker'
Priority = '持续关注'
Reason = '零信任架构下脚本签名与执行策略管理更加重要'
}
[PSCustomObject]@{
Category = '测试工程'
Technology = 'Pester 6 + Test-Kitchen'
Priority = '必须掌握'
Reason = '基础设施即代码的测试覆盖度直接决定交付信心'
}
[PSCustomObject]@{
Category = '开发体验'
Technology = 'VS Code + Copilot + PSScriptAnalyzer'
Priority = '日常使用'
Reason = 'AI 辅助编码已成标配,结合静态分析确保质量'
}
)

Write-Host "=== 2026 PowerShell 技术雷达 ===" -ForegroundColor Cyan
$techRadar | Format-Table -AutoSize -Wrap

# 学习路线建议
$learningPath = @{
'Q1 (1-3月)' = '深入学习 PowerShell 7.6 新特性,掌握 .NET 10 互操作'
'Q2 (4-6月)' = '实践 AI Agent + Tool Calling,构建自动化运维助手'
'Q3 (7-9月)' = '学习 DSC v3,结合 Kubernetes 实现声明式配置管理'
'Q4 (10-12月)' = '完善 CI/CD 流水线,提升测试覆盖率和文档质量'
}

Write-Host "`n=== 推荐学习路线 ===" -ForegroundColor Cyan
$learningPath.GetEnumerator() | Sort-Object Name | ForEach-Object {
Write-Host (" {0} : {1}" -f $_.Key, $_.Value) -ForegroundColor Yellow
}

# 推荐学习资源
Write-Host "`n=== 推荐资源 ===" -ForegroundColor Cyan
$resources = @(
'官方文档: learn.microsoft.com/powershell'
'社区博客: devblogs.microsoft.com/powershell'
'开源项目: github.com/PowerShell'
'实战课程: PowerShell Conference EU 视频'
'AI 实践: Ollama + Open WebUI 本地大模型环境'
)
$resources | ForEach-Object { Write-Host " - $_" }

执行结果示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
=== 2026 PowerShell 技术雷达 ===

Category Technology Priority Reason
-------- ----------- -------- ------
核心语言 PowerShell 7.6 / .NET 10 必须掌握 运行时性能提升、新 API 支持、源生成器优化
AI 集成 AI Agent + Tool Calling 重点投入 大模型从辅助编码走向自主执行...
基础设施 DSC v3 + K8s Operator 重点投入 声明式配置管理成为标准...
安全合规 Crescendo + AppLocker 持续关注 零信任架构下脚本签名与执行策略管理...
测试工程 Pester 6 + Test-Kitchen 必须掌握 基础设施即代码的测试覆盖度...
开发体验 VS Code + Copilot 日常使用 AI 辅助编码已成标配...

=== 推荐学习路线 ===
Q1 (1-3月) : 深入学习 PowerShell 7.6 新特性,掌握 .NET 10 互操作
Q2 (4-6月) : 实践 AI Agent + Tool Calling,构建自动化运维助手
Q3 (7-9月) : 学习 DSC v3,结合 Kubernetes 实现声明式配置管理
Q4 (10-12月): 完善 CI/CD 流水线,提升测试覆盖率和文档质量

=== 推荐资源 ===
- 官方文档: learn.microsoft.com/powershell
- 社区博客: devblogs.microsoft.com/powershell
- 开源项目: github.com/PowerShell
- 实战课程: PowerShell Conference EU 视频
- AI 实践: Ollama + Open WebUI 本地大模型环境

注意事项

  1. 保持版本同步:生产环境建议统一使用 PowerShell 7.x LTS 版本,避免 5.1 和 7.x 的行为差异导致脚本在不同环境执行结果不一致。重点关注 ConvertFrom-JsonInvoke-WebRequest 等命令在两个版本间的差异。

  2. AI 辅助需要验证:大模型生成的代码虽然越来越准确,但仍然会产生幻觉。关键逻辑必须人工审查,敏感操作(删除、修改配置)务必增加确认步骤。把 AI 当作高效的初稿生成器,而不是最终的代码审查者。

  3. 安全基线不可忽视:2025 年发生的多起供应链安全事件提醒我们,脚本的执行策略、模块来源验证和凭据管理必须作为常规检查项。定期使用 Get-AuthenticodeSignature 验证脚本签名,用 Get-InstalledModule 审计模块来源。

  4. 测试先行:无论是 AI 生成的代码还是手写脚本,上线前都应该通过 Pester 测试。2026 年建议将测试覆盖率目标设定为至少 80%,关键业务脚本达到 100%。Pester 6BeforeDiscovery 和参数化测试功能值得深入学习。

  5. 跨平台兼容意识:随着 Linux 和 macOS 上 PowerShell 使用率持续增长,编写脚本时应养成使用 Join-Path 替代硬编码路径分隔符、避免依赖 Windows 专属命令的习惯。$IsWindows$IsLinux$IsMacOS 变量可以帮助你编写跨平台兼容的代码。

  6. 持续学习与社区参与:PowerShell 生态演进速度在加快,2026 年建议每周至少花 2 小时阅读 release notes 和社区博客。参与 GitHub Discussions、提交 Issue 或 PR 是跟上技术节奏的最佳方式。关注 PowerShell Team 的官方博客和年度路线图更新,可以让你的学习方向更加明确。