PowerShell学习使用笔记

服务器被黑客攻陷了,还恰巧是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快速入门(一) 安装和使用

发表评论

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