// Windows · 2024-12-20

PowerShell基础(1)

@[TOC](内容预览 ≧∀≦ゞ

PowerShell基础(1)


声明

笔记内容参考了B站UP主 泷羽sec 的学习视频,如有侵权,将立即删除。 本笔记旨在促进网络安全学习,任何不当使用均与作者无关,请勿逾越法律红线,否则后果自负。 希望这些内容能对各位师傅有所帮助,欢迎您的点赞和评论!


初识:强大的Shell

为什么它叫“Power”?因为它确实非常强大!一句话概括:cmd能做的,PowerShell都能做;cmd不能做的,PowerShell也能做。

面向对象的设计

PowerShell是面向对象的脚本语言,这与传统的cmd有本质上的区别。每一条命令的输出都以对象的形式表示,而不是单纯的文本,这让数据的传递与处理更加高效和灵活。

与.NET的深度绑定

PowerShell依托于.NET框架。通过.NET库,PowerShell可以轻松实现许多高级功能,比如文件操作、网络通信、数据库访问等。借助.NET的强大能力,PowerShell的应用场景得到了极大的拓展。

兼容性与扩展性

PowerShell具有极佳的兼容性。它可以与VBS、cmd等脚本语言进行互相调用,能够结合多种脚本工具协作工作。此外,PowerShell的扩展性也非常出色,可以用来管理活动目录、虚拟化平台(如Hyper-V)、Office 365以及其他许多微软和第三方产品。

总之,PowerShell凭借面向对象的设计、深度整合.NET库、卓越的兼容性与扩展性,完全配得上“Power”(强大、权力)之名。

查看版本信息

不同的Windows系统自带的PowerShell版本可能有所不同。例如:

  • Windows 7和Windows 8通常预装的是PowerShell 2.0版本,但可以手动升级到3.0或更高版本。
  • Windows Server 2012则默认自带PowerShell 3.0版本,也支持升级到更高版本。

要查看当前系统上的PowerShell版本,可以在控制台中输入以下命令:

$PSVersionTable

执行后,控制台将输出类似如下的信息:

Name                           Value
----                           -----
PSVersion                      5.1.19041.4780
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.4780
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

以上信息表明,当前系统的PowerShell版本是5.1.19041.4780,并列出了与其兼容的版本范围、CLR版本等详细数据。

简单使用示例:“超级计算器”

PowerShell不仅是一个脚本工具,还可以作为一款强大的计算器。以下是一些常见的数学运算示例:

基本数学运算

PowerShell可以轻松完成加减乘除、取余等基本运算。

(1 + 7 * 5) / 2

单位换算

支持容量等单位的自动换算:

1GB / 1MB
1GB / 1MB * 18KB
1024 * 18 * 1024

逻辑运算

逻辑比较运算也非常直观,例如:

1GB -gt 1MB # 返回结果:True

相信熟悉 linux shell 的同学对-gt这个符号并不陌生,它是用于数值比较的一个条件判断操作符,即 greater than。

进制转换

PowerShell支持进制间的转换,例如将十六进制转换为十进制:

0x7e  # 返回结果:126
0xabc # 返回结果:2748

这个功能对程序员来说也是非常好用了。

PowerShell命令与使用

命令命名规则

PowerShell的命令遵循“动词+名词”的命名规则,这种命名方式非常直观,例如:

  • Get-Service:用于获取计算机上的服务信息;
  • Set-ExecutionPolicy:用于设置脚本的执行策略。

为了简化使用,PowerShell还支持大量的别名,兼容Linux,以及Windows等平台的命令。例如:

  • ls 是 Get-ChildItem 的别名,与Linux命令类似;
  • cd 是 Set-Location 的别名,与Windows命令兼容。

示例:获取服务信息

Get-Service命令可以列出当前计算机上的所有服务及其状态:

Get-Service

输出内容包括服务名称、显示名称、状态、启动类型等。相比于cmd中的services.msc,Get-Service可以直接在控制台中打印结果,更加便捷。

示例:使用管道符处理数据

PowerShell中的管道符(|)与Linux相似,但基于对象,而非纯文本。例如:

ls | Format-Table Mode, Name

以上命令先列出当前目录的文件,然后通过Format-Table将输出内容格式化为表格,仅显示“Mode”和“Name”两列数据。

管道符的核心作用是将上一条命令的输出作为下一条命令的输入,从而实现复杂的数据处理链。

总结

PowerShell作为一款强大的Shell工具,不仅可以完成cmd的所有功能,还具有以下特点:

  • 面向对象:输出以对象形式存在,处理更高效;
  • 强大的扩展性:结合.NET库,适用于多种场景;
  • 卓越的兼容性:可与cmd、VBS、Linux命令兼容使用;
  • 管道符基于对象:简化了复杂的数据处理流程。

无论是用于日常的脚本编写,还是复杂的系统管理与自动化,PowerShell都是不可或缺的利器。

最后,再次感谢您阅读本篇文章,如果您对文中内容有任何疑问或建议,欢迎在评论区与我交流!您的点赞和分享将是我继续创作的动力。

原文 https://blog.csdn.net/2301_79518550/article/details/144621100