一.Powershell初识
1.基础概念
Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。
传统的CMD支持脚本编写,但扩展性不好,而Powershell类似于Linux shell,具有更好的远程处理、工作流、可更新的帮助、预定任务(Scheduled Job)、CIM等优点。
那么,如何进入Powershell呢?
一种方法是在运行中直接输入Powershell打开,另一种方法是CMD中输入Powershell打开。
![060acad2c38a1be04ed902b9dea1b243.png](https://i-blog.csdnimg.cn/blog_migrate/9097ee031f209a74b49938ab1620a313.jpeg)
![778e2b5e9b348f7bc1c947372918fcd9.png](https://i-blog.csdnimg.cn/blog_migrate/623120d380039e235c46440a1f873792.jpeg)
![f68dd34618db13da3421faaac018fd1b.png](https://i-blog.csdnimg.cn/blog_migrate/cfd360d24e5bdb10aacda1db1149df81.jpeg)
不同操作系统内置的Powershell是不一样的,比如win7或win2008,如何查看版本呢?
$psversiontable
输出结果如下图所示:
![53ffb5e9d4f72e3022697df902ae9df9.png](https://i-blog.csdnimg.cn/blog_migrate/751a26cbc303c4a90e4899cfd5e01904.jpeg)
2.为什么强大?
首先,它可以进行计算任务,包括计算1gb大小(以字节为单位),还有基本的运算。
![2a660f1950f29e513256bf15c0d5e72e.png](https://i-blog.csdnimg.cn/blog_migrate/4e2712ab980dd16411def83beebac727.jpeg)
其次,Powershell可以获取计算机的服务详细信息、状态等。
get-service
其显示结果如下图所示,采用动词+名词方式命名,比较清楚。
![79e3c6f1abc9c1b20b7db5599acdf890.png](https://i-blog.csdnimg.cn/blog_migrate/22427877bde51cb5caf7edc8a5951fa8.jpeg)
而CMD中无法获取services的(输入services.msc),它是以图形化方式显示出来的。
![39006d5099f53afd1059003d087fb8f1.png](https://i-blog.csdnimg.cn/blog_migrate/b727d7880c14318254a12c7d209a491d.jpeg)
![d5687ec4b66932bbbe8b8febcc5ab3f4.png](https://i-blog.csdnimg.cn/blog_migrate/55e716f0f12a10b2d0cef5fbc9e64c9c.jpeg)
最后,由于Powershell具有以下特点,它被广泛应用于安全领域,甚至成为每一位Web安全必须掌握的技术。
方便
支持面向对象
支持和.net平台交互
强大的兼容性,和cmd、vbs相互调用
可扩展性好,它可以用来管理活动目录、虚拟机产品等平台
3.控制台和快捷键
鼠标右键属性,可以对Powershell控制台进行编辑,并且它支持两种编辑模式,快速编辑模式默认钩上的。
![4fd91fad51d2c03b8be6d5a65f34ceea.png](https://i-blog.csdnimg.cn/blog_migrate/2c2a82806aa773b8ee2925104434f7f3.jpeg)
![15b4b8f438731a5933613da74db2664b.png](https://i-blog.csdnimg.cn/blog_migrate/d28efa1a797b5ff993ebee16c82b8698.jpeg)
Powershell快捷键包括:
ALT+F7 清楚命令的历史记录PgUp PgDn 翻页Enter 执行当前命令End 将光标移动至当前命令的末尾Del 从右开始删除输入的命令字符Esc 清空当前命令行F2 自动补充历史命令至指定字符处F4 删除命令行至光标右边指定字符处F7 对话框显示命令行历史记录F8 检索包含指定字符的命令行历史记录F9 根据命令行的历史记录编号选择命令,历史记录编号可以通过F7查看 左/右 左右移动光标上/下 切换命令行的历史记录Home 光标移至命令行字符最左端Backspace 从右删除命令行字符Ctrl+C 取消正在执行的命令Tab 自动补齐命令或文件名
例如,使用快捷键Ctrl+C打断了正在运行的ping指令;使用tab快捷键补齐了service.msc命令。
![8b339ad35c3a39738b6643a4d26a3b30.png](https://i-blog.csdnimg.cn/blog_migrate/b066d5760af9f1d54be0047876d31037.jpeg)
4.数学运算
Powershell支持数学运算,比如:
PS C:甥敳獲yxz> 2+46PS C:甥敳獲yxz> 4-22PS C:甥敳獲yxz> 4*312PS C:甥敳獲yxz> 9%21PS C:甥敳獲yxz> (1+3*5)/28PS C:甥敳獲yxz> 1gb/1mb1024PS C:甥敳獲yxz> 1gb/1mb*18kb18874368PS C:甥敳獲yxz> 1gb -gt 1mbTruePS C:甥敳獲yxz> 0xabcd43981
显示结果如下图所示:
![6d2cc7363401642e2b72a670c1eda5bf.png](https://i-blog.csdnimg.cn/blog_migrate/3f714829fa23a4795c6fc92e21b45529.jpeg)
二.Powershell管道和重定向
1.管道
Powershell管道旨在将上一条命令的输出作为下一条命令的输出。