安全知识小百科,就点上方蓝字关注我们
1.背景及介绍
在最初的时候,Powershell 是设计运行在windows机器上实现系统和应用程序管理自动化的命令行 脚本环境。Windows Powershell V1诞生与2006年,你可以把它看成是命令行提示符cmd.exe的扩 充,不对,应当是颠覆。powershell需要.NET环境的支持,同时支持.NET对象。微软之所以将 Powershell 定位为Power,并不是夸大其词,因为它完全支持对象。其可读性,易用性,可以位居 当前所有shell之首。
现如今,PowerShell早已开源,并已经发布了许多版本。最初,Windows PowerShell建立在.NET Framework上,仅在Windows系统上工作。在现在的版本中,PowerShell使用.NET Core 3.1作为其运 行时。PowerShell在Windows,macOS和Linux平台上运行。
2.PowerShell版本
PowerShell Core是GitHub上的一个开源项目。有关在各种受支持的和实验性平台上安装PowerShell 的详细信息,请参阅以下文章。
在windows上安装PowerShell
在Linux上安装PowerShell
在macOS上安装PowerShell
在ARM上安装PowerShell
Tips:有关在Windows上安装旧版PowerShell的详细信息,请参阅《 安装Windows PowerShell》。
查看powershell版本
PowerShell中有许多自动变量可以存储状态信息。这些变量之一是 $PSVersionTable ,其中包含 一个哈希表,可用于显示相关的PowerShell版本信息:
3.PS的帮助系统
PowerShell中的编译命令称为cmdlet。Cmdlet发音为“ command-let”(不是CMD-let)。Cmdlet名称 采用单数“动词-名词”命令的形式,以使它们易于发现。例如,用于确定正在运行哪些进程的 cmdlet:Get-Process ,用于检索服务及其状态列表的cmdlet:Get-Service 。如何在 PowerShell中使用数千个命令(cmdlet),很好地使用帮助系统是使用PowerShell成功的关键。
3.1本地+在线
PowerShell的帮助文档提供了本地+在线的两种方式,在本地使用 help + cmdlet 的命令,即可 看到关于这个 cmdlet 的使用详解,在后面跟上 -online 参数,就会打开电脑的默认浏览器,来 到该 cmdlet 的在线帮助页面。
本地:help + cmdlet
语法:主要由多组左右方括号( [] )和尖括号( <> )组成,根据它们的用法,它们有两种不同的 含义。
[] :代表可选参数,可忽略
<> :代表必选参数,不可忽略
TIPS: 位置参数
可以省略名称,不输入,但值是必须输入的,系统会按照位置自动进行匹配是哪个参数 的值。
若带上名称,则可以在命令中的任意位置输入该参数和值,不受位置影响。
TIPS: 开关参数
不需要赋值的参数。比如:start-service 中的参数 "-WhatIf"
TIPS: 开关参数
参数:-Examples
在线:help + cmdlet+ [-online]
3.2 更新本地
可使用 Update-Help 更新本地帮助系统(建议定期更新),以便该计算机无法访问Internet时,仍可 为我们提供帮助。该 Update-Help cmdlet 默认情况下,它需要Internet访问,并且您需要以管理员 身份运行PowerShell。
命令:Update-Help
3.3 模糊查询
命令:help *cmdlet*
3.4 详细帮助文档
使用参数:-full 、 -ShowWindow
-full:有些版本、文档,使用或不使用该参数输出文档是一样的。
-ShowWindow:
4 Providers of Powershell
PowerShell中的provider是一个接口,允许像文件系统一样访问数据存储。PowerShell中有许多内置 provider。
4.1 查看当前PS的种类
PS D:\> Get-PSProvider
Name Capabilities Drives
---- ------------ ------
Registry ShouldProcess, Transactions {HKLM, HKCU}
Alias ShouldProcess {Alias}
Environment ShouldProcess {Env}
FileSystem Filter, ShouldProcess, Credentials {C, A, D}
Function ShouldProcess {Function}
Variable ShouldProcess {Variable}
Certificate ShouldProcess {Cert}
WSMan Credentials {WSMan}
/*
- ShouldProcess: 可支持-whatIf、-Confirm参数
- Filter: 支持-Filter参数
- Credentials: 支持凭据参数(-Credentials)连接数据存储
- Transactions: 支持事务,提交操作,回滚等
*/
如你所见,注册表,别名,环境变量,文件系统,函数,变量,证书和WSMan都有内置的提供程 序。
4.2 查看当前已连接的驱动器
4.3 操作实例
扫描下方二维码加入星球学习
加入后会邀请你进入内部微信群,内部微信群永久有效!
目前40000+人已关注加入我们