HoRain 云小助手个人主页⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。目录⛳️ 推荐一、Cmdlet 的基本概念1. 什么是 Cmdlet2. Cmdlet 与普通命令的区别二、Cmdlet 的命名规则1. 谓词-名词结构2. 常用谓词及其含义三、常用 Cmdlet 示例1. 系统信息获取2. 文件系统操作3. 管道组合应用四、Cmdlet 的参数使用1. 参数基本语法2. 常用参数类型3. 通用参数五、发现和学习 Cmdlet1. 获取帮助2. 查找可用 Cmdlet3. 探索对象结构六、Cmdlet 的高级应用1. 远程管理2. 脚本编写3. 模块扩展七、最佳实践PowerShell Cmdlet 是 PowerShell 的核心功能单元采用谓词-名词命名规范如Get-Process通过管道连接实现对象化数据处理使系统管理和自动化任务更加高效和一致。一、Cmdlet 的基本概念1. 什么是 Cmdlet定义Cmdlet 是 PowerShell 中的基本命令单元是构建在 .NET Framework 上的轻量级命令用于执行特定的系统管理任务。特点与传统命令行工具不同Cmdlet处理对象而非文本这使得数据在管道中传递时保持结构化便于后续处理。优势Cmdlet 设计为简单且专注通常只执行单一功能但可通过管道与其他 Cmdlet 组合实现复杂操作。2. Cmdlet 与普通命令的区别对象处理Cmdlet 输入和输出的是**.NET 对象**而非纯文本这使得数据在管道中传递时保留了丰富的属性和方法。一致性所有 Cmdlet 遵循统一的命名和参数规范降低了学习曲线。可组合性Cmdlet 专为管道操作设计可以轻松地将一个 Cmdlet 的输出作为另一个 Cmdlet 的输入。二、Cmdlet 的命名规则1. 谓词-名词结构基本格式Cmdlet 名称由谓词动词和名词两部分组成中间用短横线连接如Get-Service。谓词表示操作类型如Get获取、Set设置、New新建、Add添加、Remove删除等。名词表示操作对象如Process进程、Service服务、Item项目等。2. 常用谓词及其含义Get检索资源如文件、用户、服务等Set更改与资源相关的数据如文件属性、用户设置等New创建新资源如新文件、新用户等Add将资源添加到容器中如向组添加用户Remove从容器中移除资源如从组中删除用户Start启动资源如启动服务、进程Stop停止资源如停止服务、进程提示可通过Get-Verb命令查看所有支持的谓词列表及其详细说明。三、常用 Cmdlet 示例1. 系统信息获取获取进程信息Get-Process获取服务信息Get-Service获取系统事件日志Get-EventLog -LogName System2. 文件系统操作列出目录内容Get-ChildItem -Path C:\Users创建新文件New-Item -Path C:\test.txt -ItemType File复制文件Copy-Item -Path C:\source.txt -Destination D:\backup.txt3. 管道组合应用获取正在运行的服务Get-Service | Where-Object {$_.Status -eq Running}将服务信息导出为 CSV 文件Get-Service | Select-Object Name, Status | Export-CSV c:\service.csv查找以win开头的服务排除WinRMGet-Service -Name win* -Exclude WinRM四、Cmdlet 的参数使用1. 参数基本语法参数格式参数以短横线开头后跟参数名如-Name、-Path。值传递参数值通常跟在参数名后用空格分隔若值包含空格需用引号括起。示例Get-Service -Name win*2. 常用参数类型位置参数可按位置顺序传递无需指定参数名命名参数必须指定参数名如-Name开关参数无值参数如-Recurse存在即为真3. 通用参数所有 Cmdlet 都支持以下通用参数用于控制命令执行行为-Verbose显示详细执行信息-Debug显示调试信息-ErrorAction指定错误处理方式如 Continue、Stop、SilentlyContinue-WhatIf预览操作结果而不实际执行-Confirm在执行前要求确认五、发现和学习 Cmdlet1. 获取帮助查看 Cmdlet 帮助Get-Help Get-Process -Detailed查看所有帮助主题Get-Help *2. 查找可用 Cmdlet列出所有 CmdletGet-Command按名称筛选Get-Command -Name *-Process按参数类型查找Get-Command -ParameterType Process3. 探索对象结构查看对象属性和方法Get-Process | Get-Member仅显示方法Get-Process | Get-Member -MemberType Method六、Cmdlet 的高级应用1. 远程管理连接远程计算机Enter-PSSession -ComputerName Server01在多台计算机上执行命令Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-Process}2. 脚本编写创建可重用脚本将常用 Cmdlet 组合保存为 .ps1 文件函数定义封装复杂操作为自定义函数function Get-RunningServices { Get-Service | Where-Object {$_.Status -eq Running} }3. 模块扩展安装模块通过 PowerShell Gallery 获取更多功能Install-Module -Name ActiveDirectory导入模块Import-Module ActiveDirectory七、最佳实践遵循命名规范自定义函数和脚本也应采用谓词-名词格式保持一致性。善用管道将复杂操作分解为多个简单步骤通过管道连接。使用通用参数利用-WhatIf和-Confirm参数避免意外操作。获取帮助遇到问题时首先使用Get-Help查看官方文档。逐步构建从简单命令开始逐步组合成复杂脚本便于调试和维护。PowerShell Cmdlet 的强大之处在于其一致的命名规范、对象化的数据处理方式和强大的管道机制。掌握这些基础概念后你可以通过组合简单的 Cmdlet 来解决复杂的系统管理问题大大提高工作效率。随着实践深入你会发现 PowerShell 不仅适用于 Windows 系统管理还能扩展到云服务、Active Directory、Exchange Server 等多种场景。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧