服务器被黑客攻陷了,还恰巧是Windows服务器,上面的服务只能人肉重装。
怀着无奈又恐惧的心情,踏进Windows Server 2016, 很快就遇到了PowerShell, 并且发现要用这个东西干很多事,然后就去学呗,很快就意识到了这个东西的强大,用别有洞天来描述都不及,在整理这篇笔记的时候,心里一直想着王维的那句诗: “行至水穷处,坐看云起时“。
第一部分 基本信息
一、概念
1、Windows PowerShell是Windows系统下的命令行shell,同时也是一个脚本语言, 相当于UNIX系统的下的shell,比如: sh、bash、csh。
2、PowerShell作为一个命令行管理工具,是Windows系统的核心部分,在2006年4月发布。
二、怎么用PowerShell
1、关于安装
桌面版Win 10默认已安装PowerShell;服务器版Windows Server 2016及以上默认已安装。
如果你的环境没有按照,可自行安装,具体安装方式这里不赘述。
2、打开PowerShell
注:这里以服务器版为例
直接在服务入口中通过PowerShell图标进入,或者在搜索框输入powershell, 都会进入一个蓝屏的窗口,即执行powshell命令的环境
3、在蓝色窗口中输入命令即可,如果你是新手,可以往下看,下面会介绍常见的命令。
三、为什么要有PowerShell
1、PowerShell和CMD有啥区别
使用过Windows我们都知道有一个命令提示符(cmd),就是那个黑窗口,其实正式的说法是Windows命令管理器,是Window默认的命令管理器。
但是cmd只能处理批处理命令,PowerShell可以看作cmd的加强版,出来支持cmd能处理的命令,还额外增加了powershell命令
可以参考知乎:PowerShell 与 cmd 有什么不同?
2、PowerShell的意义
个人理解主要是为了对标Linux下shell, 通过敲命令方式实现对系统的操作和配置
第二部分 PowerShell作为命令行管理工具
一、命令特点
二、基本命令
1、
2、
三、网络操作命令
1、查看监听端口号netstat
PS C:\Users\Administrator> netstat -ano | findstr 80 TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:809 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING 2360 TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 1080 TCP 10.27.4.40:3389 172.31.34.40:49706 ESTABLISHED 1080 TCP [::]:80 [::]:0 LISTENING 4 TCP [::]:809 [::]:0 LISTENING 4 TCP [::]:1801 [::]:0 LISTENING 2360 TCP [::]:3389 [::]:0 LISTENING 1080
2、查看进程get-process
PS C:\Users\Administrator> get-process -name "*office*" Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName ------- ------ ----- ----- ------ -- -- ----------- 974 37 92264 105692 7.33 5876 0 Microsoft.Office.Excel.Server.EcsWatchdog 932 37 83660 97356 11.08 6456 0 Microsoft.Office.Excel.Server.WfeWatchdog 1780 54 87288 100132 25.34 2780 0 Microsoft.Office.Web.AgentManager 925 35 82672 94464 11.34 6204 0 Microsoft.Office.Web.DocumentSessionServiceWatchdog 965 36 80400 94896 10.25 5176 0 Microsoft.Office.Web.WebOneNoteWatchdog 1005 34 78864 93028 11.14 6596 0 Microsoft.Office.Web.WebWordEditorSaveServiceWatchdog 1005 33 76084 86388 4.64 6344 0 Microsoft.Office.Web.WebWordEditorWatchdog 918 35 83904 97412 5.19 5912 0 Microsoft.Office.Web.WordDocumentSessionServiceWatchdog
第三部分 PowerShell编程
一、PowerShell是一个脚本语言
1、PowerShell作为一个脚本语言,有一门语言的完整生态,变量、数据类型、控制语句、函数等
二、实例见证奇迹
1、获取当前最占内存的十个进程,并在Excel生成饼图
以下内容保存为文件processStat.ps1
$objExcel = New-Object -comobject Excel.Application $objExcel.Visible = $True $objWorkbook = $objExcel.Workbooks.Add() $objWorksheet = $objWorkbook.Worksheets.Item(1) # write information to the excel file $i = 0 $first10 = (ps | sort ws -Descending | select -first 10) $first10 | foreach -Process {$i++; $objWorksheet.Cells.Item($i,1) = $_.name; $objWorksheet.Cells.Item($i,2) = $_.ws} $otherMem = (ps | measure ws -s).Sum - ($first10 | measure ws -s).Sum $objWorksheet.Cells.Item(11,1) = "Others"; $objWorksheet.Cells.Item(11,2) = $otherMem # draw the pie chart $objCharts = $objWorksheet.ChartObjects() $objChart = $objCharts.Add(0, 0, 500, 300) $objChart.Chart.SetSourceData($objWorksheet.range("A1:B11"), 2) $objChart.Chart.ChartType = 70 $objChart.Chart.ApplyDataLabels(5)
2、执行效果
在Windows机器上选择用PowerShell打开processStat.ps1,效果如下:
第四部分 PowerShell前景
知乎:PowerShell 现在处于什么地位?有没有必要学?
第五部分 尾声
此生也不会在用Windows系统,大概率也不会在用到Windows服务器,但是遇到认识PowerShell也是人生幸事,让你知道原来微软一直在进化,原来还有这样的编程思维,原来编程世界还有另外的天地。有些东西我们可以不用,但是我们可以知道。
参考
维基百科:Windows PowerShell
微软:https://docs.microsoft.com/zh-cn/powershell/scripting/overview?view=powershell-7.1
PowerShell 在线教程
易百:PowerShell教程
知乎:PowerShell使用教程(转)
简书:Powershell快速入门(一) 安装和使用