powershell是什么:Windows脚本工具
powershell是什么,它是微软开发、内置在Windows7及以上系统的命令行外壳与脚本语言,兼容cmd命令,支持.NET对象处理,你可以用它批量管理文件、读取系统信息、配置服务、远程运维,适合运维人员、办公自动化需求用户,普通电脑日常浏览上网场景不需要主动使用,它默认的执行策略会限制直接运行陌生脚本,降低恶意代码自动执行的概率。
powershell基础运行方式
你按下Win+R,输入powershell回车就能打开原生窗口,新版Windows还提供PowerShell7跨平台版本,需要单独下载安装,原生内置版本后缀为.ps1的脚本文件不会双击直接运行,这是系统自带的防护机制。你输入Get-ExecutionPolicy可以查看当前执行策略,Restricted策略下无法运行本地脚本,RemoteSigned策略允许运行你自己编写的本地脚本,网络下载的脚本需要数字签名。
核心命令叫做cmdlet,格式统一为动词-名词,比如Get-ChildItem用来列出目录文件,和cmd里dir功能相近,但返回的是结构化对象,不是纯文本,你可以直接提取文件大小、创建时间这类属性,不用复杂的字符串截取。
powershell和cmd的区别
| 对比项 | powershell | cmd |
|---|---|---|
| 输出内容 | .NET对象 | 纯文本字符串 |
| 脚本能力 | 支持循环、条件判断、类、函数 | 基础批处理,逻辑能力偏弱 |
| 跨平台 | PowerShell7支持Windows、Linux、macOS | 仅Windows平台 |
| 内置位置 | Win7及之后系统自带 | 全版本Windows自带 |
很多简单操作两种工具都能完成,批量、复杂、需要拿到数据做二次处理的任务,powershell处理效率更高。cmd的批处理脚本兼容性更强,老旧工控设备、精简系统里更容易正常跑通。
powershell脚本调试门槛更高。
powershell安全边界与风险
它拥有和当前登录账户一致的权限,管理员身份打开后,脚本可以读写系统目录、修改注册表、调用系统服务,恶意脚本会借助这个特性窃取文件、修改系统配置。不要直接运行聊天软件、陌生网站下载的ps1脚本,打开脚本前用记事本查看全部代码,确认没有删除文件、访问外部地址的指令。
企业运维场景里,很多内网攻击链路会利用powershell执行无文件攻击,这类攻击不会落地脚本文件,仅在内存中执行指令,主流终端防护软件可以识别一部分常见恶意调用特征。
微软文档中心发布的powershell安全指南,对执行策略、JEA受限管理配置给出了标准化配置方案,JEA可以让运维账号只拥有指定命令权限,缩小权限泄露带来的影响范围。
你可以用它做低成本自动化。
常见实用场景包含批量重命名文件夹内图片、定时导出进程列表、批量检测局域网主机连通状态、批量修改本地账户属性,这些场景不需要额外安装付费自动化软件,写几十行简短脚本就能稳定运行。执行定时任务时,优先搭配Windows任务计划程序,设置独立的运行账户,避免用管理员账户长期挂载自动脚本。
