PowerShell 实战:第 6 章动手实验全攻略(含命令详解与示例)
💻 PowerShell 实战:第 6 章动手实验全攻略(含命令详解与示例)
适用环境:Windows 8/10/11 或 Windows Server 2012+
PowerShell 版本:v3 及以上
目标读者:PowerShell 初学者、Windows 系统运维工程师、自动化脚本开发者
在本实验中,我们将综合运用前面章节学到的 帮助系统 和 命令行操作技巧,一步步完成 8 个实际任务。
这些任务涵盖了进程管理、日志查看、Cmdlet 筛选、别名创建、服务查询以及防火墙规则管理。
1️⃣ 显示正在运行的进程列表
使用 Get-Process
查看系统中所有正在运行的进程。
Get-Process
📌 说明:
- 无需参数即可列出所有进程
- 可配合
-Name
参数筛选特定进程
示例:
Get-Process -Name explorer
2️⃣ 显示最新的 100 条应用程序日志
要求:不能使用 Get-WinEvent
我们可以用 Get-EventLog
(适用于 Windows 系统)。
Get-EventLog -LogName Application -Newest 100
📌 说明:
-LogName
指定日志类型(Application
、System
等)-Newest
限制输出条数
3️⃣ 显示所有类型为 “Cmdlet” 的命令
阅读 Get-Command
帮助文档后可以用 -CommandType
参数过滤:
Get-Command -CommandType Cmdlet
📌 说明:
- 仅显示 Cmdlet 类型(排除函数、脚本、应用程序等)
- 结果包含命令名称与所在模块
4️⃣ 显示所有的别名
直接运行:
Get-Alias
📌 说明:
- 别名是命令的简称,例如
gsv
对应Get-Service
- 别名适合临时输入,不建议在生产脚本中使用
5️⃣ 创建一个新的别名 np
启动记事本
Set-Alias -Name np -Value notepad.exe
📌 测试:
np
即可启动记事本。
⚠️ 注意:别名默认只在当前 PowerShell 会话有效,关闭后会失效。要永久保存,可将别名写入 PowerShell 配置文件
。
6️⃣ 显示以字母 M 开头的服务名称
首先阅读 Get-Service
帮助文档,发现 -Name
支持通配符 *
:
Get-Service -Name M*
📌 说明:
M*
匹配所有以 M 开头的服务- 输出包含服务状态(Running/Stopped)
7️⃣ 显示所有的 Windows 防火墙规则
使用 Get-NetFirewallRule
(Windows 8 及以上可用):
Get-NetFirewallRule
📌 说明:
- 该命令需在管理员权限 PowerShell 中运行
- 可配合
-PolicyStore
、-DisplayName
等参数过滤
8️⃣ 显示所有 Windows 防火墙的入站规则
同样用 Get-NetFirewallRule
,但加上 -Direction Inbound
参数:
Get-NetFirewallRule -Direction Inbound
📌 说明:
Inbound
:入站规则Outbound
:出站规则
📊 总结表
任务 | 命令 | 关键参数 | 说明 |
---|---|---|---|
查看进程 | Get-Process | -Name | 进程管理 |
最新 100 条应用日志 | Get-EventLog | -LogName Application -Newest 100 | 仅 Windows |
所有 Cmdlet 命令 | Get-Command | -CommandType Cmdlet | 命令筛选 |
所有别名 | Get-Alias | 别名列表 | |
创建别名 | Set-Alias np notepad.exe | -Name/-Value | 会话有效 |
M 开头的服务 | Get-Service -Name M* | *通配符 | 服务筛选 |
防火墙规则 | Get-NetFirewallRule | 需管理员权限 | |
入站规则 | Get-NetFirewallRule -Direction Inbound | -Direction | 规则方向 |
💡 学习收获
- 学会了如何结合 帮助系统 与 命令过滤 完成实际任务
- 熟悉了
Get-Process
、Get-EventLog
、Get-Command
、Set-Alias
、Get-Service
、Get-NetFirewallRule
等常用 Cmdlet - 理解了通配符
*
的用法与参数筛选技巧
📌 延伸阅读
- PowerShell 官方 Cmdlet 动词列表
- Windows PowerShell 高级帮助系统