PowerShell Cmdlet 基础

PowerShell Cmdlet 完全入门(最核心、最实用的那一部分)

1. 什么是 Cmdlet?(读作 “command-let”)

  • Cmdlet 是 PowerShell 的最小执行单位 = 编译好的 .NET 类
  • 所有官方命令都是 Cmdlet,第三方模块也都是 Cmdlet
  • 名字永远是:动词-名词 形式,而且大小写敏感但不区分(推荐 PascalCase)

2. 标准动词(背会这 12 个,99% 的命令你都能猜出来)

动词含义常见例子
Get获取、读取Get-Process、Get-Service、Get-Item
Set设置、修改Set-Date、Set-Location、Set-Acl
New创建New-Item、New-ADUser、New-Object
Remove删除Remove-Item、Remove-Variable
Start / Stop启动 / 停止Start-Service、Stop-Process
Restart重启Restart-Computer、Restart-Service
Test测试是否存在Test-Path、Test-Connection
ConvertTo转换成某种格式ConvertTo-Json、ConvertTo-Html
Export / Import导出 / 导入Export-Csv、Import-Module
Out输出到某处Out-File、Out-GridView、Out-Printer
Add添加Add-Content、Add-LocalGroupMember
Where / Select过滤、选择Where-Object、Select-Object

3. 每个 Cmdlet 都有的“公共参数”(记住这 8 个就够了)

-WhatIf          # 先预览,不真执行(神器!)
-Confirm         # 每次弹出确认(高危操作必加)
-Verbose         # 显示详细过程
-Debug           # 显示调试信息
-ErrorAction Stop   # 出错立刻终止脚本
-ErrorAction SilentlyContinue  # 出错忽略继续
-WarningAction   # 控制警告行为
-Force           # 强制执行(跳过提示、覆盖等)

实战例子(强烈建议每次都加 -WhatIf 先试):

Remove-Item C:\重要文件夹\* -Recurse -WhatIf     # 先看会删什么
Restart-Computer -Force -Confirm:$false          # 直接重启,不弹窗

4. 参数类型最常见的三种写法(90% 场景)

写法说明示例
位置参数靠顺序,不写参数名Stop-Process 1234
命名参数最常用,明确写参数名Stop-Process -Id 1234
开关参数布尔型,出现就是 $trueRemove-Item -Recurse -Force

5. 学会“自助查参数” —— 永远不用背

# 方法1:完整参数(最推荐)
Get-Help Get-Process -Full

# 方法2:只看参数
Get-Help Get-Process -Parameter *

# 方法3:只看例子(最快学会用法)
Get-Help Get-Process -Examples

# 方法4:直接敲命令 + Tab(实时补全)
Stop-Process -<Tab><Tab>   # 会自动列出所有参数

6. 10 个最常用、最值得死记的 Cmdlet(每天用 50 次以上)

排名Cmdlet别名一句话说明
1Get-ChildItemdir, ls列文件、文件夹
2Get-Processps查看进程
3Get-Service查看服务
4Where-Object?, where过滤
5Select-Objectselect选列、取前几条
6Get-Commandgcm搜索命令(救命!)
7Get-Helphelp查看帮助
8Get-Membergm查看对象有什么属性和方法
9Export-Csv导出完美 CSV(报表神器)
10Invoke-Commandicm远程执行(批量管 100 台电脑)

7. 30 秒体验 Cmdlet 的“组合拳”(复制粘贴)

# 找出内存占用前 10 的进程,并导出 CSV
Get-Process |
  Where-Object {$_.WS -gt 50MB} |
  Sort-Object WS -Descending |
  Select-Object -First 10 Name, ID, @{Name="内存MB";Expression={$_.WS/1MB -as [int]}} |
  Export-Csv "$env:USERPROFILE\Desktop\内存大户.csv" -NoTypeInformation -Encoding UTF8

你只需要认识上面表格里的 6 个 Cmdlet,就能写出这行代码!

现在你已经完全掌握 Cmdlet 的基础了。
下一步你想:

  • 看“高级参数绑定和管道输入”?
  • 还是直接学“自己写一个 Cmdlet”(10 行代码就能写)?
  • 或者我给你一份“100 个最常用 Cmdlet 速查表 PDF”?

随时说,我继续带你冲!

文章已创建 2965

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部