powershell自动化运维始于理解其“动词-名词”命令结构与管道机制。cmdlet如get-process、stop-service遵循统一语法;管道(|)传递对象而非文本,支持属性直接调用;执行策略需设为remotesigned以安全运行脚本。
powershell 自动化运维不是从写复杂脚本开始的,而是从理解它“怎么说话”和“怎么做事”起步。核心就两点:用对命令结构,再让命令之间连起来干活。
动词-名词命令结构是基础门槛
PowerShell 的命令叫 cmdlet(读作“command-let”),全部采用 动词-名词 格式,比如:
- Get-Process:获取正在运行的进程列表
- Stop-Service:停止某个 Windows 服务
- New-Item:新建文件、文件夹或注册表项
- Set-ExecutionPolicy:设置脚本执行策略(安全前提)
常用动词有 Get(查)、Set(改)、New(建)、Remove(删)、Start/Stop(启停)、Test(检测)、Invoke(调用)。记住几个高频动词,就能猜出大部分命令用途。
管道(|)是自动化真正的起点
PowerShell 不靠文本拼接,而是把对象“传”给下一个命令。例如:
-
获取所有 Chrome 进程并强制关闭:
Get-Process -Name chrome | Stop-Process -Force -
列出 C:\Temp 下大于 5MB 的 .log 文件,按大小倒序:
Get-ChildItem C:\Temp -Filter *.log | Where-Object {$_.Length -gt 5MB} | Sort-Object Length -Descending
每一步输出都是带属性的对象(如 Name、Length、Status),后续命令可直接调用这些属性,不用解析字符串。
执行策略必须先过,否则脚本跑不起来
PowerShell 默认禁止运行本地脚本,这是安全机制,不是障碍。开发阶段最常用的是:
-
Get-ExecutionPolicy:查看当前策略 -
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser:允许自己写的脚本运行,同时要求网络下载的脚本必须签名
这条命令只需运行一次,作用范围限于当前用户,不影响系统其他账户,适合入门和日常使用。
系统管理任务,从三类高频操作切入
刚上手不必追求大而全,先掌握这三类真实场景中反复出现的操作:
-
文件与目录:用
New-Item -ItemType Directory建文件夹;Remove-Item -Recurse -Force彻底删目录;Move-Item或Copy-Item批量移动/复制 -
服务与进程:用
Get-Service查状态,Start-Service/Stop-Service控制启停;Get-Process | Where-Object CPU -gt 80快速定位高负载进程 -
定时任务:用
New-ScheduledTaskAction+New-ScheduledTaskTrigger+Register-ScheduledTask三步创建计划任务,替代图形界面操作











