Powershell-1

声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

感谢泷羽sec 团队 的教学

视频地址:powershell(1)_哔哩哔哩_bilibili

一、Powershell介绍

PowerShell 是微软开发的一种命令行 shell 和脚本语言,用于系统管理自动化。它首次发布于2006年,设计用于帮助IT专业人员和系统管理员控制和自动化Windows操作系统的管理和配置。

1.进入Powershell的方法有两个

(1)win+R输入Powershell可以直接进入到Powershell

(2)win+R输入cmd,在cmd中输入powershell,进入Powershell

2.Powershell版本

一般来说,同版本的Windows可能支持不同版本的PowerShell。例如,Windows 10和Windows Server 2016支持PowerShell 5.1,而Windows 11和Windows Server 2022支持PowerShell 7。低版本的Powershell是支持升级的

查看Powershell版本信息,通过打印 $psversiontable 可以显示版本信息

二、Powershell为什么强大

1.对单位的计量,数学运算等十分方便

(1)单位计量

输入1GB,回显1GB有多少字节,以此类推

(2)数学运算

(3)逻辑运算

(4)进制换算

示例为十六进制转换为十进制

2.命令丰富,功能强大

命令的命名支持动词-名词的形式,对初学者来说十分友好,方便记忆并使用。

比如,Get-service命令是一个Powershell命令,用于获取计算机上服务的相关信息,包括服务名称,显示名称,状态和启动类型等。而在cmd上获取会比较麻烦,cmd无法直接打印,只能输入services.msc打开图形化界面

示例:

Powershell输入Get-service

cmd输入services无法打印,只能输入services.msc

3.Powershell是面向对象的

编程语言一般分为面向对象和面向过程,而powershell是面向对象的

(1)面向对象与面向过程的区别:

面向过程编程:以过程为中心,将任务分解为步骤按顺序执行。

面向对象编程:以对象为中心,对象包含数据和操作数据的方法。

(2)面向对象的编程语言

C++,Java,Python都是面向对象,一般的脚本语言是不支持面向对象的

(3)面向过程的编程语言

C语言

  • C语言是一种典型的面向过程的编程语言,它不直接支持面向对象编程的概念。
  • C语言中没有类(class)和对象(object)的语法结构,但可以通过一些编程技巧来模拟面向对象的特性,如使用结构体(struct)来封装数据,并通过函数指针来模拟方法。
  • 这种方式相对复杂,没有面向对象语言中直接的继承、多态等特性。

汇编语言

  • 汇编语言是一种低级编程语言,主要面向机器,与硬件的关联非常紧密。
  • 汇编语言不支持面向对象编程,它通过操作寄存器、内存地址等来完成任务。
  • 汇编语言更关注指令的执行顺序和数据在内存中的存储和操作方式,例如在x86汇编语言中,程序员需要编写如MOV(数据传送指令)、ADD(加法指令)等指令来操作数据,而不是通过对象的方式。

4.与.NET平台的绑定

PowerShell与微软的.NET框架紧密结合,这意味着它可以利用.NET的强大库来执行各种操作和实现多种功能,执行复杂的数据处理和对象操作。

5.兼容性

PowerShell可以与VBScript(VBS)和命令提示符(CMD)互相调用,这表明它具有良好的兼容性,能够与现有的脚本和命令行工具协同工作。

6.扩展性

PowerShell不仅能够管理Windows系统,还能管理活动目录、虚拟机以及虚拟化产品,如Office 365。这显示了PowerShell在不同管理任务中的广泛应用和强大的可拓展性。

三、Powershell操作

1.Powershell控制台

(1)自定义PowerShell控制台属性:

用户可以通过右键点击PowerShell窗口,选择"属性"来自定义控制台的外观和行为。在属性设置中,用户可以调整字体大小、字体颜色、光标大小等。还可以设置窗口的颜色、窗口大小、透明度等参数,以满足个人喜好。

(2)PowerShell编辑模式

PowerShell支持两种编辑模式:快速编辑模式和标准编辑模式。

快速编辑模式提供了一种更快捷的方式来编辑命令,而标准编辑模式则提供了更传统的命令行编辑体验。用户可以通过右键点击来切换或设置编辑模式。

2.Powershell快捷键

PowerShell 提供了许多快捷键来提高命令行操作的效率。以下是一些常用的 PowerShell 快捷键:

  1. Ctrl + C:终止当前运行的命令或脚本。

  2. Ctrl + V:在 PowerShell 中,这会将剪贴板中的内容作为命令插入,而不是作为文本。

  3. Ctrl + Shift + C:复制整个命令行。

  4. Ctrl + Shift + V:将剪贴板中的内容作为文本插入,而不是作为命令。

  5. Ctrl + A:选择命令行中的所有文本。

  6. Ctrl + E:将光标移动到命令行的末尾。

  7. Ctrl + M:执行命令行中的命令。

  8. Ctrl + Z:将命令行中的命令发送到 PowerShell 历史记录中,但不执行它。

  9. Ctrl + Y:将最近使用 Ctrl + Z 取消的命令重新添加到命令行。

  10. Ctrl + Shift + F:在当前 PowerShell 窗口中打开搜索功能。

  11. Ctrl + Shift + H:显示最近使用的命令历史记录。

  12. Ctrl + Shift + P:打开 PowerShell 集成脚本环境(ISE)。

  13. Tab:自动完成命令、参数或路径。

  14. F1:显示帮助信息。

  15. F2:在命令行中编辑命令。

  16. F3:在命令历史记录中向上搜索。

  17. F4:在命令历史记录中向下搜索。

  18. F7:显示命令历史记录。

  19. F8:在命令历史记录中逐条执行命令。

  20. Alt + F7:清除命令历史记录。

  21. Alt + F8:在命令历史记录中搜索命令。

  22. Alt + F9:执行命令历史记录中的最后一个命令。

  23. Alt + .:显示最近使用的命令。

  24. Shift + F10:打开上下文菜单。

  25. Shift + F11:打开脚本调试控制台。

这些快捷键可以帮助用户更快地执行命令、浏览历史记录以及在 PowerShell 中进行其他操作。记住这些快捷键可以显著提高在 PowerShell 中的工作效率。

3.管道和重定向

(1)管道和重定向的概念:

  • 管道 :在 PowerShell 中,管道操作符 | 用于将一个命令的输出作为下一个命令的输入。这允许用户将多个命令链接起来,以创建复杂的数据处理流程。
  • 重定向 :重定向操作符 > 用于将命令的输出结果保存到文件中,覆盖文件的原有内容。如果使用 >>,则会在文件的现有内容后追加输出。

(2)跨平台兼容性:

PowerShell 支持跨平台使用,这意味着它不仅支持 Windows 命令,还支持许多 Linux 命令,如 ls(列出目录内容)。

(3)基于对象的处理:

PowerShell 是基于对象的,这意味着它处理的是对象而不是简单的文本,可以处理来自不同平台的命令输出。这与传统的 CMD 环境不同,后者主要处理文本。

示例命令

  • ls | format-table Mode,name:这个命令使用管道将 ls 命令的输出传递给 format-table 命令,后者将输出格式化为表格,只显示文件的模式(Mode)和名称(name)。
  • ls | format-table Mode,name > a.txt:这个命令将上述格式化后的输出重定向到名为 a.txt 的文件中,覆盖文件的原有内容。
  • type a.txtcat a.txt:这两个命令用于显示 a.txt 文件的内容。
相关推荐
用户9623779544820 小时前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机1 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954481 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star1 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954481 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
一次旅行6 天前
网络安全总结
安全·web安全
red1giant_star6 天前
手把手教你用Vulhub复现ecshop collection_list-sqli漏洞(附完整POC)
安全
ZeroNews内网穿透6 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全