0x00PS基础介绍
0x01PS生命周期
0x03PS基础安装
Windows安装方式
Linux安装方式
Docker容器安装方式
从WindowsPowerShell5.1迁移到PowerShell7
0x04PS运行模式
0x00PS基础介绍
描述
owerShell是构建于.NET上基于任务的命令行shell和脚本语言。PowerShell可帮助系统管理员和高级用户快速自动执行用于管理操作系统(Linux、macOS和Windows)和流程的任务,其实可以看做是C#的简化版本还与PHP语言有相似之处(语法),与我们可以采用ISE集成脚本环境进行PS脚本脚本编写;
Tips:多年来,PowerShell已有很多版本发布。最初,WindowsPowerShell是在.NETFramework基础之上构建而成,仅适用于Windows系统。在最新版本中PowerShell使用.NETCore5.0作为运行时,此时它可以在Windows、macOS和Linux平台上运行。
Q
owerShellVSShell?
答
S脚本语言与Linux上的Shell有一致之处,虽然现在服务器基本都采用Linux,但是针对于某些数据库安装环境也还必须是Windows或者是在线上的应用无法迁移到Linux,而Windows中的Bat无疑是太旧太老,不如PowerShell功能强大并且支持模块化编程。这也是我为什么脱离了Bat而进入PS坑的原因;
Powershell特点:
PowerShell命令可以从命令行管理计算机(十分方便)。
PowerShellCore支持Windows、macOS和Linux平台,一般运行在window7-windowserver及以上自带的个人pc和服务器上使用普遍;
PowerShell提供程序可让你访问数据存储(如注册表和证书存储),与你访问文件系统一样方便。
PowerShell具有丰富的表达式分析器和完全开发的脚本语言。
PowerShell旨在消除长期存在的问题和添加新功能,从而改进命令行和脚本环境。
PowerShell结合了交互式shell和脚本编写环境,可以访问命令行工具(命令系列是可扩展的)、COM对象和.NET类库。
PowerShell基于对象而非文本,所以输出是基于对象的。
PowerShell基于.NETFramework构建它与C#编程语言共享一些语法功能和关键字。
PowerShell是开放源代码项目Github
设计目标
/p>
可发现性:管理系统是一项复杂的任务。具有一致的接口的工具有助于控制固有的复杂性
一致性:管理系统是一项复杂的任务,具有一致的接口的工具有助于控制固有的复杂性
交互式脚本编写环境:Windows命令提示符提供了一个可访问命令行工具和基本脚本的交互式shell,Windows脚本宿主(WSH)具有可编写脚本的命令行工具和COM自动化对象,但不提供交互式shell。
面向对象
owerShell基于对象而非文本
交互式脚本编写环境:Windows命令提示符提供了一个可访问命令行工具和基本脚本的交互式shell
轻松转换到脚本:借助PowerShell的命令可发现性,可以从以交互方式键入命令轻松转换为创建和运行脚本
PowerShell版本
/p>
WindowsPowerShell:从Windows7SP1和WindowsServerR2SP1开始,每个Windows中默认随附安装有WindowsPowerShell。
PS3.0:Windows7SP1(预装)/Windows8默认安装
PS4.0:Windows8.1
PS5.0:已被WindowsPowerShell5.1取代
PS5.1:Windows10/WindowsServer
6.0/7.0/7.1
owerShellCore:微软为了贴近Linux增加其系统的扩展性,在Windows中内置了Linux系统并且同时开源了PowerShellCore了,利用它我们就可以跨平台进行管理计算机了;
注意:WindowsPowerShell是为.NETFramework编写的,而PowerShellCore是为.NETCore编写的。可移植模块是同时适用于WindowsPowerShell和PowerShellCore的模块。
PowerShell7:是专为云、本地和混合环境设计的,它包含增强功能和新功能。
与WindowsPowerShell并行安装和运行
提升了与现有WindowsPowerShell模块的兼容性
新语言功能(如三元运算符和ForEach-Object-Parallel)
提高了性能
基于SSH的远程处理
跨平台互操作性
支持Docker容器
PowerShell系统要求
操作系统要求:Windows7ServicePack1~WindowsServer(注意区间中的各个PS版本)
PowerShellCore==.NETCore(=6.x)
Microsoft.NETFramework要求
PS5.1==.NETFramework4.5
PS5.0==.NETFramework4.5
PS4.0==.NETFramework4.5
PS3.0==.NETFramework4
WindowsManagementFramework4.0
WS-Management3.0
WindowsManagementInstrumentation3.0
公共语言运行时4.0
图形用户界面要求
参考网站:PowershellCore:新的PowerShell版本: